#ifndef __CPPLUGINS__INTERFACE__OBJECT__H__
#define __CPPLUGINS__INTERFACE__OBJECT__H__
-#include <string>
-#include <Pluma/Pluma.hpp>
-#include <cpPlugins/cpPlugins_Export.h>
+#include <cpPlugins/Interface/Macros.h>
-#define ITK_MANUAL_INSTANTIATION
+#include <string>
#include <itkObject.h>
#include <itkObjectFactory.h>
-// -------------------------------------------------------------------------
-#define CPPLUGINS_PROVIDER_HEADER_BEGIN( TYPE ) \
- class cpPlugins_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_END };
-
-// -------------------------------------------------------------------------
-#define CPPLUGINS_PROVIDER_HEADER( TYPE ) \
- CPPLUGINS_PROVIDER_HEADER_BEGIN( TYPE ) \
- virtual TYPE::Pointer create( ) const = 0; \
- CPPLUGINS_PROVIDER_HEADER_END
-
-// -------------------------------------------------------------------------
-#define CPPLUGINS_PROVIDER_SOURCE( TYPE, Version, LowestVersion ) \
- PLUMA_PROVIDER_SOURCE( TYPE, Version, LowestVersion )
-
-// -------------------------------------------------------------------------
-#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
{
namespace Interface
{
/**
*/
- class cpPlugins_EXPORT Object
+ class cpPlugins_Interface_EXPORT Object
: public itk::Object
{
public:
public:
itkNewMacro( Self );
itkTypeMacro( Object, itkObject );
+ cpPlugins_Id_Macro( Object, "BaseObject" );
- public:
- itkGetConstMacro( ClassName, std::string );
- itkGetConstMacro( ClassCategory, std::string );
+ itkGetStringMacro( Name );
+ itkSetStringMacro( Name );
protected:
Object( );
Self& operator=( const Self& );
protected:
- std::string m_ClassName;
- std::string m_ClassCategory;
+ std::string m_Name;
};
- /**
- * Plugin provider
- */
- CPPLUGINS_PROVIDER_HEADER( Object );
-
} // ecapseman
} // ecapseman