1 #ifndef __CPPLUGINS__INTERFACE__PROCESSOBJECTPROVIDER__H__
2 #define __CPPLUGINS__INTERFACE__PROCESSOBJECTPROVIDER__H__
4 #include <Pluma/Pluma.hpp>
5 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
6 #include <cpPlugins/Interface/Config.h>
7 #include <cpPlugins/Interface/ProcessObject.h>
9 // -------------------------------------------------------------------------
10 #define CPPLUGINS_INHERIT_PROVIDER( T ) \
12 : public cpPlugins::Interface::ProcessObjectProvider \
15 cpPlugins::Interface::ProcessObject::Pointer create( ) const \
17 T::Pointer a = T::New( ); \
18 cpPlugins::Interface::ProcessObject::Pointer b = a.GetPointer( ); \
23 // -------------------------------------------------------------------------
30 class cpPlugins_Interface_EXPORT ProcessObjectProvider
31 : public pluma::Provider
33 friend class pluma::Pluma;
36 static const unsigned int PLUMA_INTERFACE_VERSION;
37 static const unsigned int PLUMA_INTERFACE_LOWEST_VERSION;
38 static const std::string PLUMA_PROVIDER_TYPE;
39 std::string plumaGetType( ) const
40 { return( PLUMA_PROVIDER_TYPE ); }
43 unsigned int getVersion( ) const
44 { return( PLUMA_INTERFACE_VERSION ); }
46 virtual ProcessObject::Pointer create( ) const = 0;
53 #endif // __CPPLUGINS__INTERFACE__PROCESSOBJECTPROVIDER__H__