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;
32 typedef std::pair< std::string, std::string > TGlobalPort;
33 typedef std::map< std::string, TGlobalPort > TGlobalPorts;
36 typedef std::pair< std::string, std::string > TConnection;
38 cpExtensions::DataStructures::
39 Graph< TObject::Pointer, TConnection, std::string > TGraph;
43 virtual ~Workspace( );
46 TInterface* GetInterface( );
47 void SetInterface( TInterface* i );
50 std::string LoadWorkspace( const std::string& fname );
51 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 bool Connect( const std::string& i, const std::string& o );
64 TParameters* GetParameters( const std::string& name );
65 const TParameters* GetParameters( const std::string& name ) const;
66 TFilter* GetFilter( const std::string& name );
67 const TFilter* GetFilter( const std::string& name ) const;
68 bool HasFilter( const std::string& name ) const;
71 bool Reduce( const std::string& name );
73 const std::string& name,
74 const std::string& filter, const std::string& filter_input
77 const std::string& name,
78 const std::string& filter, const std::string& filter_output
80 void ClearInputPorts( );
81 void ClearOutputPorts( );
84 std::string Execute( );
85 std::string Execute( const std::string& name, QWidget* p = NULL );
88 void _UpdateLoadedPluginsInformation( );
92 TInterface* m_Interface;
95 typename TGraph::Pointer m_Graph;
96 TGlobalPorts m_InputPorts;
97 TGlobalPorts m_OutputPorts;
104 #endif // __CPPLUGINS__INTERFACE__WORKSPACE__H__