]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Manager.h
Moved to version 1.0
[cpPlugins.git] / lib / cpPlugins / Manager.h
diff --git a/lib/cpPlugins/Manager.h b/lib/cpPlugins/Manager.h
new file mode 100644 (file)
index 0000000..b8d9f91
--- /dev/null
@@ -0,0 +1,50 @@
+// =========================================================================
+// @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$