21 #ifndef ph_ioplugin_hh
22 #define ph_ioplugin_hh
37 static const char *type_descr;
61 typedef typename D::type
Data;
64 typedef typename std::shared_ptr<Data >
PData;
82 void add_suffixes(std::multimap<std::string, std::string>& map)
const;
91 PData load(
const std::string& fname)
const;
100 bool save(
const std::string& fname,
const Data& data)
const;
112 std::string get_preferred_suffix()
const;
115 void add_suffix(
const std::string& suffix);
129 virtual PData do_load(
const std::string& fname)
const = 0;
131 void do_get_help_xml(xmlpp::Element& root)
const;
140 virtual bool do_save(
const std::string& fname,
const typename D::type& data)
const = 0;
142 virtual std::string do_get_preferred_suffix()
const;