// ========================================================================= // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co) // ========================================================================= #ifndef __cpPlugins__Manager__h__ #define __cpPlugins__Manager__h__ #include #include namespace cpPlugins { /** */ class CPPLUGINS_EXPORT Manager { friend std::ostream& operator<<( std::ostream& out, const Manager& m ) { m.Print( out ); return( out ); } public: typedef Manager Self; typedef std::map< std::string, Library > TLibraries; typedef std::map< std::string, std::string > TPlugins; public: Manager( ); virtual ~Manager( ); void Print( std::ostream& out ) const; const TPlugins& GetPlugins( ) const; void Configure( ); void AddPath( const std::string& p ); void AddFile( const std::string& f ); std::shared_ptr< ProcessObject > Create( const std::string& name ); protected: static bool m_Configured; static TLibraries m_Libraries; static TPlugins m_Plugins; }; // end class } // end namespace #endif // __cpPlugins__Manager__h__ // eof - $RCSfile$