21 #ifndef mia_core_creator_hh
22 #define mia_core_creator_hh
60 virtual std::shared_ptr<T> operator () (
const typename T::dimsize_type& size,
EPixelType type)
const = 0;
64 #define DEFINE_Image_Creator(TYPE) \
65 typedef TImageCreator<TYPE> TYPE##Creator; \
66 typedef TFactory<TImageCreator<TYPE> > TYPE##CreatorPlugin; \
67 typedef THandlerSingleton<TFactoryPluginHandler<TYPE##CreatorPlugin> > TYPE##CreatorPluginHandler;\
68 FACTORY_TRAIT(THandlerSingleton<TFactoryPluginHandler<TYPE##CreatorPlugin> >);
71 #define INSTANCIATE_Image_Creator(TYPE) \
72 template class TImageCreator<TYPE>;\
73 template class TPlugin<TYPE, creator_type>; \
74 template class TFactory<TImageCreator<TYPE> >; \
75 template class TPluginHandler<TYPE##CreatorPlugin>; \
76 template class TFactoryPluginHandler<TYPE##CreatorPlugin>; \
77 template class THandlerSingleton<TFactoryPluginHandler<TYPE##CreatorPlugin> >;
T plugin_data
plugin searchpath helper type, data part
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
The base class for generic image creation.
creator_type plugin_type
plugin searchpath helper type, plugin type part
static const char * type_descr
#define EXPORT_CORE
Macro to manage Visual C++ style dllimport/dllexport.
The base class for all plug-in created object.
#define NS_MIA_END
conveniance define to end the mia namespace