-#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_CPPLUGINS( TYPE ) \
- virtual TYPE::Pointer create( ) const = 0; \
- PLUMA_PROVIDER_HEADER_END_CPPLUGINS
-
-// -------------------------------------------------------------------------
-#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 ); \
- } \
- };