Salome HOME
SMH: 3.0.0 preparation = merged version (POLYWORK + RTVDEBUG01) + adopation for new GUI
[modules/superv.git] / src / GraphBase / DataFlowBase_ComputingNode.hxx
index f11309c57ce94158c3702774266e68605e0c9dc0..ba8bd6afec3aa19520a9ab3847bef60875852049 100644 (file)
@@ -24,6 +24,10 @@ namespace GraphBase {
 
   class InLineNode ;
 
+  class LoopNode ;
+  class EndOfLoopNode ;
+  class EndOfSwitchNode ;
+
   class ComputingNode : public StreamNode {
 
     private:
@@ -156,9 +160,12 @@ namespace GraphBase {
 //      const SALOME_ModuleCatalog::Service * Service() const ;
       SUPERV::SDate FirstCreation() const ;
       SUPERV::SDate LastModification() const ;
-      char* Author() const { return my_strdup( _Author ) ; } ;
-      char* EditorRelease() const { return my_strdup( _EditorRelease ) ; } ;
-      char * Comment() const { return my_strdup( _Comment ) ; } ;
+//JR 17.02.2005 Memory Leak      char* Author() const { return my_strdup( _Author ) ; } ;
+      char* Author() const { return _Author ; } ;
+//JR 17.02.2005 Memory Leak      char* EditorRelease() const { return my_strdup( _EditorRelease ) ; } ;
+      char* EditorRelease() const { return _EditorRelease ; } ;
+//JR 17.02.2005 Memory Leak      char * Comment() const { return my_strdup( _Comment ) ; } ;
+      char * Comment() const { return _Comment ; } ;
       int XCoordinate() const { return _X ; } ;
       int YCoordinate() const { return _Y ; } ;
 
@@ -225,10 +232,11 @@ namespace GraphBase {
                   << " + 1 Service " << ServiceName() << endl ;
            ToNode->IncrConnectedInPortsNumber() ; } ;
 
-      bool RemoveLinkedNode( GraphBase::ComputingNode * ToNode ) {
-           bool RetVal = GraphBase::StreamNode::RemoveLinkedNode( ToNode ) ;
+      bool RemoveLinkedNode( GraphBase::ComputingNode * ToNode ,
+                             bool DoLinkedFromNode = true ) {
+           bool RetVal = GraphBase::StreamNode::RemoveLinkedNode( ToNode , DoLinkedFromNode ) ;
            if ( RetVal ) {
-             cdebug << "GraphBase::StreamNode::RemoveLinkedNode to " << ToNode->Name() << " from "
+             cdebug << "ComputingNode::RemoveLinkedNode to " << ToNode->Name() << " from "
                     << Name() << " ConnectedInPortsNumber "
                     << ToNode->ConnectedInPortsNumber() - 1 << endl ;
              ToNode->DecrConnectedInPortsNumber() ;
@@ -240,7 +248,7 @@ namespace GraphBase {
            GraphBase::StreamNode::ReNameLinkedNode( OldNodeName , NewNodeName ) ; } ;
 
       void IncrConnectedInPortsNumber() {
-           cdebug << "IncrConnectedInPortsNumber " << Name() << " -> "
+           cdebug << "ComputingNode::IncrConnectedInPortsNumber " << Name() << " -> "
                   << _ConnectedInPortsNumber+1 << endl ;
            _ConnectedInPortsNumber++ ; } ;
       void DecrConnectedInPortsNumber() {
@@ -262,6 +270,13 @@ namespace GraphBase {
           }
            return false ; } ;
 
+      bool CheckLoop(GraphBase::LoopNode * aLoopNode ,
+                     GraphBase::EndOfLoopNode * anEndLoopNode ) const ;
+      bool CheckEndLoop(GraphBase::LoopNode * aLoopNode ,
+                        GraphBase::EndOfLoopNode * anEndLoopNode ) const ;
+      bool InitBranchOfSwitchDone( bool AllInit , GraphBase::EndOfSwitchNode * anEndSwitchNode ) ;
+      bool CheckSwitch(GraphBase::EndOfSwitchNode * anEndSwitchNode ) ;
+
 //      const GraphBase::ListOfParameters * GetListOfParameters() const ;
 
       const long CpuUsed() ;