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