+// SUPERV GraphEditor : contains classes that permit edition of graphs
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : DataFlowEditor_DataFlow.hxx
+// Module : SUPERV
+
#ifndef _DATAFLOWEDITOR_DATAFLOW_HXX
#define _DATAFLOWEDITOR_DATAFLOW_HXX
-//#include "DataFlowExecutor_DataFlow.hxx"
-
-#include "DataFlowExecutor_DataFlow.hxx"
#include "DataFlowEditor_OutNode.hxx"
+namespace GraphExecutor {
+
+ class DataFlow;
+
+}
+
namespace GraphEditor {
class DataFlow : public GraphEditor::OutNode {
GraphExecutor::DataFlow * _DataFlowExecutor ;
bool _ReadOnly ;
bool _Executing ;
+ bool _EditedAfterExecution ;
public:
DataFlow();
- DataFlow( CORBA::ORB_ptr ORB, SALOME_NamingService* ptrNamingService ,
+ DataFlow( CORBA::ORB_ptr ORB, SALOME_NamingService * ptrNamingService ,
const char * DataFlowName ,
- const char * DebugFileName );
- DataFlow( CORBA::ORB_ptr ORB, SALOME_NamingService* ptrNamingService ,
+ const char * DebugFileName ,
+ const SUPERV::KindOfNode aKindOfNode );
+ DataFlow( CORBA::ORB_ptr ORB, SALOME_NamingService * ptrNamingService ,
const SALOME_ModuleCatalog::Service& DataFlowService ,
const char * DataFlowComponentName ,
const char * DataFlowInterfaceName ,
const SUPERV::KindOfNode DataFlowkind = SUPERV::ComputingNode ,
const SUPERV::SDate DataFlowFirstCreation = SUPERV::SDate() ,
const SUPERV::SDate DataFlowLastModification = SUPERV::SDate() ,
- const char * DataFlowEditorRelease = NULL ,
- const char * DataFlowAuthor = NULL ,
- const char * DataFlowComputer = NULL ,
- const char * DataFlowComment = NULL ,
- const char * DebugFileName = NULL ) ;
+ const char * DataFlowEditorRelease = NULLSTRING ,
+ const char * DataFlowAuthor = NULLSTRING ,
+ const char * DataFlowComputer = NULLSTRING ,
+ const char * DataFlowComment = NULLSTRING ,
+ const char * DebugFileName = NULLSTRING ) ;
virtual ~DataFlow();
void ReadOnly() ;
char * DataNodeInfo() ;
char * NodeInfo( const char * aNodeName ) ;
- bool LoadDataFlow( const GraphBase::SGraph *aDataFlow ) ;
- bool LoadXml( const char* myFileName ) ;
+ bool LoadDataFlow( const GraphBase::SGraph * aDataFlow ) ;
+// bool LoadXml( const char * myFileName ) ;
+ bool LoadXml( const char * myFileName , GraphBase::ListOfSGraphs & aListOfDataFlows ) ;
bool LoadInfo( const GraphBase::SNode &aDataFlowInfo ) ;
- bool SaveXml(const char* myFileName ) ;
- bool SavePy(const char* myFileName ) ;
+ bool SaveXml(const char * myFileName ) ;
+ bool SavePy(const char * myFileName ) ;
// void DateModification() ;
- GraphBase::SGraph * GetDataFlow() ;
+ GraphBase::ListOfSGraphs * GetDataFlows() ;
GraphBase::SNode * GetInfo() const ;
- GraphBase::ListOfNodes * GetNodes() const ;
- GraphBase::ListOfLinks * GetLinks() const ;
- GraphBase::ListOfGraphs * GetGraphs() const ;
- GraphBase::ListOfLinks * GetDatas() const ;
+ GraphBase::ListOfSNodes * GetNodes() const ;
+ GraphBase::ListOfSLinks * GetLinks() const ;
+ GraphBase::ListOfSGraphs * GetGraphs() const ;
+ GraphBase::ListOfSLinks * GetDatas() const ;
const SALOME_ModuleCatalog::Service * GetService() ;
GraphEditor::InNode * AddService (
SALOME_ModuleCatalog::Service& aService ,
- const char *NodeComponentName ,
- const char* NodeInterfaceName ) {
+ const char * NodeComponentName ,
+ const char * NodeInterfaceName ) {
return AddNode( aService , NodeComponentName ,
NodeInterfaceName ) ; } ;
GraphEditor::InNode * AddNode(
const SALOME_ModuleCatalog::Service& NodeService ,
- const char* NodeComponentName ,
- const char* NodeInterfaceName ,
- const char* NodeName = NULL ,
+ const char * NodeComponentName ,
+ const char * NodeInterfaceName ,
+ const char * NodeName = NULLSTRING ,
const SUPERV::KindOfNode NodeKindOfNode = SUPERV::ComputingNode ,
GraphBase::ListOfFuncName aFuncName = GraphBase::ListOfFuncName() ,
GraphBase::ListOfPythonFunctions aPythonFunction = GraphBase::ListOfPythonFunctions() ,
const SUPERV::SDate NodeFirstCreation = SUPERV::SDate() ,
const SUPERV::SDate NodeLastModification = SUPERV::SDate() ,
- const char * NodeEditorRelease = NULL ,
- const char * NodeAuthor = NULL ,
- const char * NodeComputer = NULL ,
- const char * NodeComment = NULL ,
+ const char * NodeEditorRelease = NULLSTRING ,
+ const char * NodeAuthor = NULLSTRING ,
+ const char * NodeComputer = NULLSTRING ,
+ const char * NodeComment = NULLSTRING ,
const int NodeX = 0 ,
const int NodeY = 0 ) ;
GraphEditor::InNode * GetNode( const char* NodeName ) ;
- bool RemoveNode( const char* NodeName ) ;
- bool ReNameNode( const char* OldNodeName ,
- const char* NewNodeName ) ;
+ bool RemoveNode( const char * NodeName ) ;
+ bool ReNameNode( const char * OldNodeName ,
+ const char * NewNodeName ) ;
const SALOME_ModuleCatalog::Service * NodeService( const char * NodeName ) ;
void Coordinates( const int X , const int Y ) ;
const int XCoordinate() ;
const int YCoordinate() ;
- void Coordinates( const char* NodeName , const int X , const int Y ) ;
- const int XCoordinate( const char* NodeName ) ;
- const int YCoordinate( const char* NodeName ) ;
+ void Coordinates( const char * NodeName , const int X , const int Y ) ;
+ const int XCoordinate( const char * NodeName ) ;
+ const int YCoordinate( const char * NodeName ) ;
- const GraphBase::InPort *GetInPort( const char *name ) ;
- const GraphBase::OutPort *GetOutPort( const char *name ) ;
- GraphBase::InPort *GetChangeInPort( const char *name ) ;
- GraphBase::OutPort *GetChangeOutPort( const char *name ) ;
+ const GraphBase::InPort * GetInPort( const char * name ) ;
+ const GraphBase::OutPort * GetOutPort( const char * name ) ;
+ GraphBase::InPort * GetChangeInPort( const char * name ) ;
+ GraphBase::OutPort * GetChangeOutPort( const char * name ) ;
bool HasInput(const char * ToServiceParameterName ) ;
- bool AddLinkValue( const char *FromNodeName ,
- const char *FromServiceParameterName ,
- const char *ToNodeName ,
- const char *ToServiceParameterName ,
- const CORBA::Any aValue ) {
- return AddLink( FromNodeName, FromServiceParameterName , ToNodeName ,
- ToServiceParameterName , aValue ) ; } ;
- bool AddLink( const char* FromNodeName ,
- const char* FromServiceParameterName ,
- const char* ToNodeName ,
- const char* ToServiceParameterName ,
- const CORBA::Any aValue = CORBA::Any() ) ;
-
- bool GetLink(const char* ToNodeName ,
- const char* ToServiceParameterName ,
- char** FromNodeName ,
- char** FromServiceParameterName ) ;
+// bool AddLinkValue( const char * FromNodeName ,
+// const char * FromServiceParameterName ,
+// const char * ToNodeName ,
+// const char * ToServiceParameterName ,
+// const CORBA::Any aValue ) {
+// return AddLinkValue( FromNodeName, FromServiceParameterName , ToNodeName ,
+// ToServiceParameterName , aValue ) ; } ;
+ bool AddLink( const char * FromNodeName ,
+ const char * FromServiceParameterName ,
+ const char * ToNodeName ,
+ const char * ToServiceParameterName ) ;
+
+ bool RemoveLink( const char * FromNodeName ,
+ const char * FromServiceParameterName ,
+ const char * ToNodeName ,
+ const char * ToServiceParameterName ) ;
+
+ bool GetLink(const char * ToNodeName ,
+ const char * ToServiceParameterName ,
+ char ** FromNodeName ,
+ char ** FromServiceParameterName ) ;
GraphBase::SLink * GetLink( GraphBase::ComputingNode * aNode ,
const char* ToServiceParameterName ) ;
- bool AddLinkCoord( const char* FromNodeName ,
- const char* FromServiceParameterName ,
- const char* ToNodeName ,
- const char* ToServiceParameterName ,
+ bool AddLinkCoord( const char * FromNodeName ,
+ const char * FromServiceParameterName ,
+ const char * ToNodeName ,
+ const char * ToServiceParameterName ,
const int nXY ,
- const int* X ,
- const int* Y ) ;
- bool AddLinkCoord( const char* FromNodeName ,
- const char* FromServiceParameterName ,
- const char* ToNodeName ,
- const char* ToServiceParameterName ,
+ const int * X ,
+ const int * Y ) ;
+ bool AddLinkCoord( const char * FromNodeName ,
+ const char * FromServiceParameterName ,
+ const char * ToNodeName ,
+ const char * ToServiceParameterName ,
const int index ,
const int X ,
const int Y ) ;
- bool ChangeLinkCoord( const char* FromNodeName ,
- const char* FromServiceParameterName ,
- const char* ToNodeName ,
- const char* ToServiceParameterName ,
+ bool ChangeLinkCoord( const char * FromNodeName ,
+ const char * FromServiceParameterName ,
+ const char * ToNodeName ,
+ const char * ToServiceParameterName ,
const int index ,
const int X ,
const int Y ) ;
- bool RemoveLinkCoord( const char* FromNodeName ,
- const char* FromServiceParameterName ,
- const char* ToNodeName ,
- const char* ToServiceParameterName ,
+ bool RemoveLinkCoord( const char * FromNodeName ,
+ const char * FromServiceParameterName ,
+ const char * ToNodeName ,
+ const char * ToServiceParameterName ,
const int index ) ;
- int GetLinkCoordSize( const char* FromNodeName ,
- const char* FromServiceParameterName ,
- const char* ToNodeName ,
- const char* ToServiceParameterName ) ;
- bool GetLinkCoord( const char* FromNodeName ,
- const char* FromServiceParameterName ,
- const char* ToNodeName ,
- const char* ToServiceParameterName ,
- int *X , int *Y ) ;
- bool GetLinkCoord( const char* FromNodeName ,
- const char* FromServiceParameterName ,
- const char* ToNodeName ,
- const char* ToServiceParameterName ,
+ int GetLinkCoordSize( const char * FromNodeName ,
+ const char * FromServiceParameterName ,
+ const char * ToNodeName ,
+ const char * ToServiceParameterName ) ;
+ bool GetLinkCoord( const char * FromNodeName ,
+ const char * FromServiceParameterName ,
+ const char * ToNodeName ,
+ const char * ToServiceParameterName ,
+ int * X , int * Y ) ;
+ bool GetLinkCoord( const char * FromNodeName ,
+ const char * FromServiceParameterName ,
+ const char * ToNodeName ,
+ const char * ToServiceParameterName ,
const int index , long &X , long &Y ) ;
- bool RemoveLink( const char* FromNodeName ,
- const char* FromServiceParameterName ,
- const char* ToNodeName ,
- const char* ToServiceParameterName ) ;
-
- bool AddInputData( const char* ToNodeName ,
- const char* ToParameterName ,
+ bool AddInputData( const char * ToNodeName ,
+ const char * ToParameterName ,
const CORBA::Any aValue = CORBA::Any() ) ;
- bool AddInputSharedData( const char* ToNodeName1 ,
- const char* ToParameterName1 ,
- const char* ToNodeName2 ,
- const char* ToParameterName2 ) ;
- const CORBA::Any *GetInData( const char * ToNodeName ,
- const char * ToParameterName ) ;
- const CORBA::Any *GetOutData( const char * FromNodeName ,
- const char * FromParameterName ) ;
+ const CORBA::Any * GetInData( const char * ToNodeName ,
+ const char * ToParameterName ) ;
+ const CORBA::Any * GetOutData( const char * FromNodeName ,
+ const char * FromParameterName ) ;
bool IsValid() ;
bool IsExecutable() ;
+ void Executing() ; // asv : removed a bool parameter, use Editing() to set _Executing = false
bool IsExecuting() ;
+ void Editing() ;
bool IsEditing() ;
+ bool UnValid() ;
+ void EditedAfterExecution(bool EditedAfterExecution ) ;
+ bool EditedAfterExecution() ;
bool IsReadOnly() ;
long LevelMax() ;
SUPERV::ListOfStrings * LevelNodes(long aLevel ) ;
long ThreadsMax() ;
- long GraphsNumber() ;
+ long SubGraphsNumber() ;
+ long SubStreamGraphsNumber() ;
void Executor(GraphExecutor::DataFlow * DataFlowExecutor ) ;
GraphExecutor::DataFlow * GraphEditor::DataFlow::Executor() const ;