]> SALOME platform Git repositories - modules/superv.git/blobdiff - src/GraphBase/DataFlowBase_PortsOfNode.cxx
Salome HOME
SMH: 3.0.0 preparation = merged version (POLYWORK + RTVDEBUG01) + adopation for new GUI
[modules/superv.git] / src / GraphBase / DataFlowBase_PortsOfNode.cxx
index a1ffbf41926ced793ea072ffc325cd5a2c168479..4c4c04d2e8e06698f71e25c17a2d745e091a97cd 100644 (file)
@@ -91,6 +91,8 @@ void GraphBase::PortsOfNode::DefPortsOfNode(
   const bool WithOutGate = (aKind == SUPERV::DataFlowGraph) || (aKind == SUPERV::DataStreamGraph) ||
                            (aKind == SUPERV::ComputingNode) || (aKind == SUPERV::FactoryNode) ||
                            (aKind == SUPERV::InLineNode) || (aKind == SUPERV::GOTONode) ||
+                            /* asv : 15.12.04 : adding out gate ports for Loop/EndLoop, too. p2.5, PAL7385*/
+                          (aKind == SUPERV::LoopNode) || (aKind == SUPERV::EndLoopNode) ||
                            (aKind == SUPERV::SwitchNode) || (aKind == SUPERV::EndSwitchNode) ||
                            (aKind == SUPERV::MacroNode) ;
   SUPERV::KindOfPort aPortKind = SUPERV::ServiceParameter ;
@@ -110,14 +112,14 @@ void GraphBase::PortsOfNode::DefPortsOfNode(
     aPortKind = SUPERV::InLineParameter ;
   }
   for ( i = 0 ; i < _NodeInPortsSize ; i++ ) {
-    cdebug << "DefPortsOfNode delete In" << i << ". "  << _NodeInPorts[i] 
+    cdebug << "DefPortsOfNode delete In" << i << ". "  << _NodeInPorts[i]->PortName()
            << endl ;
     _MapOfNodeInPorts.erase( _NodeInPorts[i]->PortName() ) ;
     delete _NodeInPorts[i] ;
   }
   _NodeInPorts.resize( 0 );
   for ( i = 0 ; i < _NodeOutPortsSize ; i++ ) {
-    cdebug << "DefPortsOfNode delete Out" << i << ". " << _NodeOutPorts[i]->PortName() 
+    cdebug << "DefPortsOfNode delete Out" << i << ". " << _NodeOutPorts[i]->PortName()
            << endl ;
     _MapOfNodeOutPorts.erase( _NodeOutPorts[i]->PortName() ) ;
     delete _NodeOutPorts[i] ;
@@ -132,10 +134,10 @@ void GraphBase::PortsOfNode::DefPortsOfNode(
     SALOME_ModuleCatalog::ServicesParameter anInLoopParameter ;
     _NodeInPortsSize = _NodeInPortsSize + 1 ;
     iVec += 1 ;
-    char *aParametername = "InitLoop" ;
-    if ( aKind == SUPERV::EndLoopNode ) {
-      aParametername = "DoLoop" ;
-    }
+//    char *aParametername = "InitLoop" ;
+//    if ( aKind == SUPERV::EndLoopNode ) {
+      char * aParametername = "DoLoop" ;
+//    }
     anInLoopParameter.Parametertype = CORBA::string_dup( "long" ) ;
     anInLoopParameter.Parametername = CORBA::string_dup( aParametername ) ;
     if ( _NodeInPortsSize > (int ) _NodeInPorts.size() ) {
@@ -154,7 +156,8 @@ void GraphBase::PortsOfNode::DefPortsOfNode(
   }
   cdebug << "NodeInPortsSize " << _NodeInPortsSize << endl ;
   for ( i = iVec ; i < _NodeInPortsSize ; i++ ) {
-    string _aParametername = CORBA::string_dup(aService.ServiceinParameter[i-iVec].Parametername) ;
+//JR 24.02.2005 Memory Leak    string _aParametername = CORBA::string_dup(aService.ServiceinParameter[i-iVec].Parametername) ;
+    string _aParametername = string(aService.ServiceinParameter[i-iVec].Parametername) ;
     const char *aParametername = _aParametername.c_str() ;
     if ( _MapOfNodeInPorts[ aParametername ] ) {
       if ( !DataFlowOrComputing &&
@@ -173,7 +176,7 @@ void GraphBase::PortsOfNode::DefPortsOfNode(
       _NodeInPorts[i] = new GraphBase::InPort( NodeName , aServiceParameter ,
                                                aPortKind );
       _NodeInPorts[i]->SetDebug( ORB , Graph_prof_debug , Graph_fdebug ) ;
-//      cdebug << i << ". " << *_NodeInPorts[i] << " " << _NodeInPorts[i]->Kind() << endl ;
+      cdebug << i << ". " << *_NodeInPorts[i] << " " << _NodeInPorts[i]->Kind() << endl ;
     }
   }
   iVec += aService.ServiceinParameter.length() ;
@@ -222,7 +225,8 @@ void GraphBase::PortsOfNode::DefPortsOfNode(
   }
   cdebug << "NodeOutPortsSize " << _NodeOutPortsSize << endl ;
   for ( i = iVec ; i < _NodeOutPortsSize ; i++ ) {
-    string _aParametername = CORBA::string_dup(aService.ServiceoutParameter[i-iVec].Parametername) ;
+//JR 24.02.2005 Memory Leak    string _aParametername = CORBA::string_dup(aService.ServiceoutParameter[i-iVec].Parametername) ;
+    string _aParametername = string(aService.ServiceoutParameter[i-iVec].Parametername) ;
     const char *aParametername = _aParametername.c_str() ;
     if ( _MapOfNodeOutPorts[ aParametername ] ) {
       if ( !DataFlowOrComputing &&
@@ -241,7 +245,7 @@ void GraphBase::PortsOfNode::DefPortsOfNode(
       _NodeOutPorts[i] = new GraphBase::OutPort( NodeName , aServiceParameter ,
                                                  aPortKind );
       _NodeOutPorts[i]->SetDebug( ORB , Graph_prof_debug , Graph_fdebug ) ;
-//      cdebug << i << ". " << *_NodeOutPorts[i] << " " << _NodeOutPorts[i]->Kind() << endl ;
+      cdebug << i << ". " << *_NodeOutPorts[i] << " " << _NodeOutPorts[i]->Kind() << endl ;
     }
   }
   iVec += aService.ServiceoutParameter.length() ;