--- /dev/null
+// =========================================================================
+// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
+// =========================================================================
+#ifndef __cpPlugins__Manager__h__
+#define __cpPlugins__Manager__h__
+
+#include <map>
+#include <cpPlugins/Library.h>
+
+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$