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
24 class cpPlugins_Interface_EXPORT Interface
27 typedef Interface Self;
28 typedef std::vector< ProcessObjectProvider* > TProviders;
29 typedef std::map< std::string, unsigned int > TClass;
30 typedef std::map< std::string, TClass > TClasses;
32 std::map< std::string, std::vector< std::string > >
35 typedef TProviders::const_iterator TProvidersIterator;
36 typedef TClasses::const_iterator TClassesIterator;
40 virtual ~Interface( );
42 bool LoadDefaultConfiguration( const std::string& path );
43 bool SaveDefaultConfiguration( const std::string& path );
46 TClasses& GetClasses( );
47 const TClasses& GetClasses( ) const;
48 TLoadedPlugins& GetLoadedPlugins( );
49 const TLoadedPlugins& GetLoadedPlugins( ) const;
50 ProcessObject::Pointer CreateObject( const std::string& name ) const;
53 bool Load( const std::string& path );
54 bool Load( const std::string& folder, const std::string& name );
55 bool LoadFromFolder( const std::string& folder, bool r = false );
56 bool Unload( const std::string& name );
58 bool IsLoaded( const std::string& name ) const;
63 static void _SepFName(
64 const std::string& path,
70 pluma::Pluma* m_Pluma;
71 TProviders m_Providers;
73 TLoadedPlugins m_LoadedPlugins;
80 #endif // __CPPLUGINS__INTERFACE__INTERFACE__H__