1 #ifndef __CPPLUGINS__INTERFACE__INTERFACE__H__
2 #define __CPPLUGINS__INTERFACE__INTERFACE__H__
8 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
9 #include <cpPlugins/Interface/Object.h>
10 #include <cpPlugins/Interface/ProcessObject.h>
12 // Some forward declarations
22 // Some forward declarations
23 class ProcessObjectProvider;
27 class cpPlugins_Interface_EXPORT Interface
30 typedef Interface Self;
31 typedef std::vector< ProcessObjectProvider* > TProviders;
32 typedef std::map< std::string, unsigned int > TClass;
33 typedef std::map< std::string, TClass > TClasses;
35 std::map< std::string, std::vector< std::string > >
38 typedef TProviders::const_iterator TProvidersIterator;
39 typedef TClasses::const_iterator TClassesIterator;
43 virtual ~Interface( );
45 bool LoadDefaultConfiguration( const std::string& path );
46 bool SaveDefaultConfiguration( const std::string& path );
49 TClasses& GetClasses( );
50 const TClasses& GetClasses( ) const;
51 TLoadedPlugins& GetLoadedPlugins( );
52 const TLoadedPlugins& GetLoadedPlugins( ) const;
53 ProcessObject::Pointer CreateObject( const std::string& name ) const;
56 bool Load( const std::string& path );
57 bool Load( const std::string& folder, const std::string& name );
58 bool LoadFromFolder( const std::string& folder, bool r = false );
59 bool Unload( const std::string& name );
61 bool IsLoaded( const std::string& name ) const;
66 static void _SepFName(
67 const std::string& path,
73 pluma::Pluma* m_Pluma;
74 TProviders m_Providers;
76 TLoadedPlugins m_LoadedPlugins;
83 #endif // __CPPLUGINS__INTERFACE__INTERFACE__H__