#ifndef __CPPLUGINS__INTERFACE__PROCESSOBJECTPROVIDER__H__ #define __CPPLUGINS__INTERFACE__PROCESSOBJECTPROVIDER__H__ #include #include #include #include // ------------------------------------------------------------------------- #define CPPLUGINS_INHERIT_PROVIDER( T ) \ class T##Provider \ : public cpPlugins::Interface::ProcessObjectProvider \ { \ public: \ cpPlugins::Interface::ProcessObject::Pointer create( ) const \ { \ T::Pointer a = T::New( ); \ cpPlugins::Interface::ProcessObject::Pointer b = a.GetPointer( ); \ return( b ); \ } \ }; // ------------------------------------------------------------------------- namespace cpPlugins { namespace Interface { /** */ class cpPlugins_Interface_EXPORT ProcessObjectProvider : public pluma::Provider { friend class pluma::Pluma; private: 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 ); } virtual ProcessObject::Pointer create( ) const = 0; }; } // ecapseman } // ecapseman #endif // __CPPLUGINS__INTERFACE__PROCESSOBJECTPROVIDER__H__ // eof - $RCSfile$