Go to the documentation of this file.
21 #ifndef ph_IOhandler_hh
22 #define ph_IOhandler_hh
48 typedef typename I::Data
Data;
51 typedef typename std::shared_ptr<Data >
PData;
60 typedef std::multimap<std::string, std::string>
CSuffixmap;
72 PData load(
const std::string& fname)
const;
82 DataKey load_to_pool(
const std::string& fname)
const;
92 bool save(
const std::string& fname,
const Data& data)
const;
99 const Interface *preferred_plugin_ptr(
const std::string& fname)
const;
108 const Interface& preferred_plugin(
const std::string& fname)
const;
111 const CSuffixmap& get_supported_filetype_map()
const;
114 const std::string get_supported_suffixes()
const;
117 const std::set<std::string> get_supported_suffix_set()
const;
125 std::string get_preferred_suffix(
const std::string& type)
const;
135 void do_initialise();
141 std::set<std::string> m_compress_sfx;
145 void do_print_help(std::ostream& os)
const;
147 std::string get_handler_type_string_and_help(std::ostream& os)
const;
148 std::string do_get_handler_type_string()
const;
149 bool do_validate_parameter_string(
const std::string& s)
const;
151 virtual void check_file_exists(
const std::string& fname)
const;
160 PData do_load(
const std::string& fname)
const;
161 bool do_save(
const std::string& fname,
163 const std::string do_get_descr()
const;
164 const std::string do_get_preferred_suffix()
const;
167 std::shared_ptr<Interface> m_pool_plugin;
174 #define EXPLICITE_INSTANCEIATE_IO_HANDLER(IOTYPE) \
175 template class TIOPlugin<IOTYPE>; \
176 template class THandlerSingleton<TIOPluginHandler<TIOPlugin<IOTYPE>>>; \
177 template class TIOPluginHandler<TIOPlugin<IOTYPE>>; \
178 template class TPluginHandler<TIOPlugin<IOTYPE>> \
182 template <
typename Data>
191 template <
typename T>
194 static_assert(
sizeof(T) == 0,
"The call to load_image must be resolved to a template specialization");
TPluginHandler< I >::Interface Interface
the IO interface provided by this handler
CPluginMap::const_iterator const_iterator
the iterator to walk over the available plug-ins
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
Template for all plug-in handlers that are responsible for data IO.
#define NS_MIA_END
conveniance define to end the mia namespace
I::Data Data
Data type handled by this plug-in.
the singleton that a plug-in handler really is
std::multimap< std::string, std::string > CSuffixmap
The map that maps file name suffixes to IO plug-ins.
TDelayedParameter< PData > DataKey
The type of the key used for the CDatapool access.
The basic template of all plugin handlers.
A parameter proxy object with a key to identify it.
T load_image(const std::string &filename)
std::shared_ptr< Data > PData
Shared pointer to the data hadnled by this plug-in.
TPluginHandler< I >::const_iterator const_iterator
an iterator over the available plug-ins
I Interface
typedef for the plug-in interface provided by the class
THandlerSingleton< TIOPluginHandler< TIOPlugin< Data > > > type