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< ObjectProvider* > 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 Object::Pointer CreateObject( const std::string& name ) const;
36 ProcessObject::Pointer CreateProcessObject(
37 const std::string& name
40 /// Interface to PLUMA
41 bool Load( const std::string& path );
42 bool Load( const std::string& folder, const std::string& name );
43 int LoadFromFolder( const std::string& folder, bool r = false );
44 bool Unload( const std::string& name );
46 void GetLoadedPlugins( std::vector< const std::string* >& names ) const;
47 bool IsLoaded( const std::string& name ) const;
54 TProviders m_Providers;
62 #endif // __CPPLUGINS__INTERFACE__INTERFACE__H__