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>
12 // Some forward declarations
21 class cpPlugins_Interface_EXPORT Workspace
24 typedef cpPlugins::Interface::Interface TInterface;
25 typedef cpPlugins::Interface::Object TObject;
26 typedef cpPlugins::Interface::ProcessObject TFilter;
27 typedef cpPlugins::Interface::DataObject TData;
28 typedef TFilter::TParameters TParameters;
31 typedef std::set< std::string > TStringContainer;
34 typedef std::pair< std::string, std::string > TConnection;
36 cpExtensions::DataStructures::
37 Graph< TObject::Pointer, TConnection, std::string > TGraph;
41 virtual ~Workspace( );
44 bool LoadPluginsPath( const std::string& path, bool r = false );
45 bool LoadPlugins( const std::string& fname );
46 const TStringContainer& GetLoadedPlugins( ) const;
47 void GetLoadedPluginCategories( TStringContainer& categories ) const;
48 void GetLoadedPluginFilters( TStringContainer& filters ) const;
49 const TStringContainer& GetLoadedPluginFilters(
50 const std::string& category
54 std::string LoadWorkspace( const std::string& fname );
55 std::string SaveWorkspace( const std::string& fname ) const;
60 const TGraph* GetGraph( ) const;
61 bool CreateFilter( const std::string& filter, const std::string& name );
63 const std::string& orig_filter, const std::string& dest_filter,
64 const std::string& output_name,
65 const std::string& input_name
67 TParameters* GetParameters( const std::string& name );
68 const TParameters* GetParameters( const std::string& name ) const;
69 TFilter* GetFilter( const std::string& name );
70 const TFilter* GetFilter( const std::string& name ) const;
71 bool HasFilter( const std::string& name ) const;
74 bool Reduce( const std::string& name );
77 std::string Execute( );
78 std::string Execute( const std::string& name, QWidget* p = NULL );
81 void _UpdateLoadedPluginsInformation( );
85 TInterface m_Interface;
86 std::string m_LastLoadedPlugin;
87 TStringContainer m_LoadedPlugins;
88 std::map< std::string, TStringContainer > m_LoadedFilters;
91 typename TGraph::Pointer m_Graph;
98 #endif // __CPPLUGINS__INTERFACE__WORKSPACE__H__