1 #ifndef __CPPLUGINS__INTERFACE__INTERFACE__H__
2 #define __CPPLUGINS__INTERFACE__INTERFACE__H__
7 #include <Pluma/Pluma.hpp>
9 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
10 #include <cpPlugins/Interface/Object.h>
11 #include <cpPlugins/Interface/ProcessObject.h>
19 class cpPlugins_Interface_EXPORT Interface
22 typedef std::vector< ProcessObjectProvider* > TProviders;
23 typedef std::map< std::string, unsigned int > TClasses;
25 typedef TProviders::const_iterator TProvidersIterator;
26 typedef TClasses::const_iterator TClassesIterator;
30 virtual ~Interface( );
33 TClasses& GetClasses( );
34 const TClasses& GetClasses( ) const;
35 ProcessObject::Pointer CreateObject( const std::string& name ) const;
38 bool Load( const std::string& path );
39 bool Load( const std::string& folder, const std::string& name );
40 std::list< std::string > LoadFromFolder(
41 const std::string& folder, bool r = false
43 bool Unload( const std::string& name );
45 void GetLoadedPlugins( std::vector< const std::string* >& names ) const;
46 bool IsLoaded( const std::string& name ) const;
53 TProviders m_Providers;
61 #endif // __CPPLUGINS__INTERFACE__INTERFACE__H__