]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface.h
7c860db3b584e81f6d2d8208a931a5d14c6f3ff2
[cpPlugins.git] / lib / cpPlugins / Interface.h
1 #ifndef __CPPLUGINS__INTERFACE__H__
2 #define __CPPLUGINS__INTERFACE__H__
3
4 #include <cpPlugins/Config.h>
5 #include <cpPlugins/ProcessObject.h>
6 #include <map>
7 #include <string>
8
9 namespace cpPlugins
10 {
11   /**
12    */
13   class cpPlugins_EXPORT Interface
14   {
15   public:
16     typedef std::map< std::string, std::string > TStringRow;
17     typedef std::map< std::string, TStringRow >  TFilters;
18
19   public:
20     Interface( );
21     virtual ~Interface( );
22
23     const TFilters& GetFilters( );
24
25     void LoadPluginFile( const std::string& filename );
26     void UnloadAll( );
27
28     cpPlugins::ProcessObject::Pointer Create(
29       const std::string& category, const std::string& name
30       );
31
32   protected:
33     std::map< std::string, void* > m_Plugins;
34     TFilters m_Filters;
35   };
36
37 } // ecapseman
38
39 #endif // __CPPLUGINS__INTERFACE__H__
40
41 // eof - $RCSfile$