1 #ifndef __CPPLUGINS__INTERFACE__INTERFACE__H__
2 #define __CPPLUGINS__INTERFACE__INTERFACE__H__
7 #include <Pluma/Pluma.hpp>
9 #include <cpPlugins/Interface/Object.h>
20 typedef std::vector< ObjectProvider* > TProviders;
21 typedef std::map< std::string, unsigned int > TClasses;
23 typedef TProviders::const_iterator TProvidersIterator;
24 typedef TClasses::const_iterator TClassesIterator;
28 virtual ~Interface( );
31 TClasses& GetClasses( );
32 const TClasses& GetClasses( ) const;
33 Object* CreateObject( const std::string& name ) const;
35 /// Interface to PLUMA
36 bool Load( const std::string& path );
37 bool Load( const std::string& folder, const std::string& name );
38 int LoadFromFolder( const std::string& folder, bool r = false );
39 bool Unload( const std::string& name );
41 void GetLoadedPlugins( std::vector< const std::string* >& names ) const;
42 bool IsLoaded( const std::string& name ) const;
49 TProviders m_Providers;
57 #endif // __CPPLUGINS__INTERFACE__INTERFACE__H__