1 #ifndef __CPPLUGINS__INTERFACE__WORKSPACE__H__
2 #define __CPPLUGINS__INTERFACE__WORKSPACE__H__
4 #include <cpExtensions/DataStructures/Graph.h>
5 #include <cpPlugins/Interface/Interface.h>
6 #include <cpPlugins/Interface/DataObject.h>
7 #include <cpPlugins/Interface/ProcessObject.h>
18 class cpPlugins_Interface_EXPORT Workspace
21 typedef cpPlugins::Interface::Interface TInterface;
22 typedef cpPlugins::Interface::Object TObject;
23 typedef cpPlugins::Interface::ProcessObject TFilter;
24 typedef cpPlugins::Interface::DataObject TData;
25 typedef TFilter::TParameters TParameters;
28 typedef std::set< std::string > TStringContainer;
31 typedef std::pair< std::string, std::string > TConnection;
33 cpExtensions::DataStructures::
34 Graph< TObject::Pointer, TConnection, std::string > TGraph;
38 virtual ~Workspace( );
41 bool LoadPluginsPath( const std::string& path, bool r = false );
42 bool LoadPlugins( const std::string& fname );
43 const TStringContainer& GetLoadedPlugins( ) const;
44 void GetLoadedPluginCategories( TStringContainer& categories ) const;
45 void GetLoadedPluginFilters( TStringContainer& filters ) const;
46 const TStringContainer& GetLoadedPluginFilters(
47 const std::string& category
51 std::string LoadWorkspace( const std::string& fname );
52 std::string SaveWorkspace( const std::string& fname ) const;
56 const TGraph* GetGraph( ) const;
57 bool CreateFilter( const std::string& filter, const std::string& name );
59 const std::string& orig_filter, const std::string& dest_filter,
60 const std::string& output_name,
61 const std::string& input_name
63 TParameters* GetParameters( const std::string& name );
64 const TParameters* GetParameters( const std::string& name ) const;
67 bool Reduce( const std::string& name );
70 std::string Execute( );
71 std::string Execute( const std::string& name );
74 void _UpdateLoadedPluginsInformation( );
78 TInterface m_Interface;
79 std::string m_LastLoadedPlugin;
80 TStringContainer m_LoadedPlugins;
81 std::map< std::string, TStringContainer > m_LoadedFilters;
84 typename TGraph::Pointer m_Graph;
91 #endif // __CPPLUGINS__INTERFACE__WORKSPACE__H__