#include <string>
#include <Pluma/Pluma.hpp>
-#include <itkObject.h>
-#include <itkObjectFactory.h>
#include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
+#include <itkObject.h>
+#include <itkObjectFactory.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 CPPLUGINS_PROVIDER_HEADER_BEGIN( 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 CPPLUGINS_PROVIDER_HEADER_END };
// -------------------------------------------------------------------------
-#define PLUMA_PROVIDER_HEADER_CPPLUGINS( TYPE ) \
- PLUMA_PROVIDER_HEADER_BEGIN_CPPLUGINS( TYPE ) \
+#define CPPLUGINS_PROVIDER_HEADER( TYPE ) \
+ CPPLUGINS_PROVIDER_HEADER_BEGIN( TYPE ) \
virtual TYPE::Pointer create( ) const = 0; \
- PLUMA_PROVIDER_HEADER_END_CPPLUGINS
+ CPPLUGINS_PROVIDER_HEADER_END
+
+// -------------------------------------------------------------------------
+#define CPPLUGINS_PROVIDER_SOURCE( TYPE, Version, LowestVersion ) \
+ PLUMA_PROVIDER_SOURCE( TYPE, Version, LowestVersion )
// -------------------------------------------------------------------------
-#define PLUMA_INHERIT_PROVIDER_CPPLUGINS( TYPE, SUPER ) \
- class TYPE##Provider \
- : public SUPER##Provider \
- { \
- public: \
- SUPER::Pointer create( ) const \
- { \
- TYPE::Pointer a = TYPE::New( ); \
- SUPER::Pointer b = a.GetPointer( ); \
- return( b ); \
- } \
+#define CPPLUGINS_INHERIT_PROVIDER( TYPE ) \
+ class TYPE##Provider \
+ : public cpPlugins::Interface::ObjectProvider \
+ { \
+ public: \
+ cpPlugins::Interface::Object::Pointer create( ) const \
+ { \
+ TYPE::Pointer a = TYPE::New( ); \
+ cpPlugins::Interface::Object::Pointer b = a.GetPointer( ); \
+ return( b ); \
+ } \
};
namespace cpPlugins
itkTypeMacro( Object, itkObject );
public:
- virtual std::string GetClassName( ) const;
- virtual std::string GetClassType( ) const;
+ itkGetConstMacro( ClassName, std::string );
+ itkGetConstMacro( ClassCategory, std::string );
protected:
Object( );
// Purposely not implemented
Object( const Self& );
Self& operator=( const Self& );
+
+ protected:
+ std::string m_ClassName;
+ std::string m_ClassCategory;
};
- // TODO: doc
- PLUMA_PROVIDER_HEADER_CPPLUGINS( Object );
+ /**
+ * Plugin provider
+ */
+ CPPLUGINS_PROVIDER_HEADER( Object );
} // ecapseman