#include <itkObjectFactory.h>
#include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
+
+// -------------------------------------------------------------------------
+#define PLUMA_PROVIDER_HEADER_BEGIN_CPPLUGINS( TYPE )\
+class cpPlugins_Interface_EXPORT TYPE##Provider\
+: public pluma::Provider{\
+private:\
+ friend class pluma::Pluma;\
+ static const unsigned int PLUMA_INTERFACE_VERSION;\
+ static const unsigned int PLUMA_INTERFACE_LOWEST_VERSION;\
+ static const std::string PLUMA_PROVIDER_TYPE;\
+ std::string plumaGetType( ) const\
+{ return( PLUMA_PROVIDER_TYPE ); }\
+public:\
+ unsigned int getVersion( ) const\
+{ return( PLUMA_INTERFACE_VERSION ); }
+
+// -------------------------------------------------------------------------
+#define PLUMA_PROVIDER_HEADER_END_CPPLUGINS };
+
// -------------------------------------------------------------------------
#define PLUMA_PROVIDER_HEADER_CPPLUGINS( TYPE ) \
- PLUMA_PROVIDER_HEADER_BEGIN( TYPE ) \
+ PLUMA_PROVIDER_HEADER_BEGIN_CPPLUGINS( TYPE ) \
virtual TYPE::Pointer create( ) const = 0; \
- PLUMA_PROVIDER_HEADER_END
+ PLUMA_PROVIDER_HEADER_END_CPPLUGINS
// -------------------------------------------------------------------------
#define PLUMA_INHERIT_PROVIDER_CPPLUGINS( TYPE, SUPER ) \