1 #ifndef __cpPlugins__Interface__Plugins__h__
2 #define __cpPlugins__Interface__Plugins__h__
4 #include <cpPlugins/Config.h>
5 #include <cpPlugins/BaseObjects/ProcessObject.h>
17 class cpPlugins_EXPORT Plugins
22 typedef itk::Object Superclass;
23 typedef itk::SmartPointer< Self > Pointer;
24 typedef itk::SmartPointer< const Self > ConstPointer;
26 typedef std::pair< void*, void* > THandlers;
27 typedef std::pair< std::string, THandlers > TLibData;
28 typedef std::map< std::string, TLibData > TLibraries;
29 typedef std::map< std::string, TLibraries > TFilters;
32 itkTypeMacro( Plugins, itk::Object );
35 static Pointer New( );
36 virtual itk::LightObject::Pointer CreateAnother( ) const cpPlugins_OVERRIDE;
37 Pointer Clone( ) const;
39 const TFilters& GetFilters( ) const;
41 void LoadPluginsFile( const std::string& libname );
42 void LoadPluginsDirectory( const std::string& dir );
44 void GuessEnvironment( const std::string& dir );
45 bool SaveEnvironment( const std::string& dir );
47 cpPlugins::BaseObjects::ProcessObject::Pointer
48 CreateFilter( const std::string& category, const std::string& name );
53 virtual void PrintSelf( std::ostream& os, itk::Indent indent ) const cpPlugins_OVERRIDE;
55 void _ReadPluginsPathsVariable( );
58 // Purposely not implemented
59 Plugins( const Self& other );
60 Self& operator=( const Self& other );
63 static Pointer m_Singleton;
64 std::set< std::string > m_PluginsPaths;
72 #endif // __cpPlugins__Interface__Plugins__h__