Salome HOME
*** empty log message ***
[modules/superv.git] / src / GraphExecutor / DataFlowExecutor_OutNode.cxx
index d9e0fb886d5df5366f1df7a47b30a77f79f0390d..21b440888036c10a5876830cb991859a4be0c6ee 100644 (file)
@@ -224,24 +224,6 @@ bool GraphExecutor::OutNode::LoadNodes(const GraphBase::ListOfNodes &aListOfNode
                                 _Orb , aNode.theService , anInNode->NamePtr() ,
                                 anInNode->Kind() ,
                                 Graph_prof_debug() , Graph_fdebug() ) ;
-#if 0
-      GraphBase::InLineNode * aINode = anInNode->InLineNode() ;
-      GraphBase::LoopNode * aLNode = NULL ;
-      if ( aINode->IsLoopNode() ) {
-        aLNode = anInNode->LoopNode() ;
-        aLNode->SetPythonFunction( aNode.theListOfFuncName[ 0 ].c_str() ,
-                                   *aNode.theListOfPythonFunctions[ 0 ] ) ;
-        aLNode->SetMorePythonFunction( aNode.theListOfFuncName[ 1 ].c_str() ,
-                                       *aNode.theListOfPythonFunctions[ 1 ] ) ;
-        aLNode->SetNextPythonFunction( aNode.theListOfFuncName[ 2 ].c_str() ,
-                                       *aNode.theListOfPythonFunctions[ 2 ] ) ;
-      }
-      else if ( aINode->IsInLineNode() || aINode->IsGOTONode() ||
-                aINode->IsSwitchNode() || aINode->IsEndSwitchNode() ) {
-        aINode->SetPythonFunction( aNode.theListOfFuncName[ 0 ].c_str() ,
-                                   *aNode.theListOfPythonFunctions[ 0 ] ) ;
-      }
-#endif
     }
 #if 0
     if ( aNode.theListOfParameters.size() ) { // BusPorts ...
@@ -257,11 +239,37 @@ bool GraphExecutor::OutNode::LoadNodes(const GraphBase::ListOfNodes &aListOfNode
       }
     }
 #endif
+    GraphBase::ComputingNode * theNode = GetChangeGraphNode( aNode.theName.c_str() ) ;
+    theNode->DataStreamInPortsNumber( aNode.theDataStreamInArgsNumber ) ;
+    theNode->DataStreamOutPortsNumber( aNode.theDataStreamOutArgsNumber ) ;
+    cdebug << "GraphExecutor::OutNode::LoadNodes " << anInNode->Name()
+           << " InPortsSize " << theNode->GetNodeInPortsSize()
+           << " OutPortsSize " << theNode->GetNodeOutPortsSize()
+           << " DataStreamInPortsNumber " << aNode.theDataStreamInArgsNumber
+           << " DataStreamOutPortsNumber " << aNode.theDataStreamOutArgsNumber
+           << endl ;
+    int j ;
+    if ( aNode.theDataStreamInArgsNumber ) { // -1 because of Gates
+      for ( j = theNode->GetNodeInPortsSize() - aNode.theDataStreamInArgsNumber - 1 ; j < theNode->GetNodeInPortsSize() - 1 ; j++ ) {
+        cdebug << "GraphExecutor::OutNode::LoadNodes " << anInNode->Name()
+               << " InPort " << theNode->GetChangeNodeInPort( j )->PortName()
+               << " Kind( DataStreamParameter)" << endl ;
+        theNode->GetChangeNodeInPort( j )->Kind( SUPERV::DataStreamParameter ) ;
+      }
+    }
+    if ( aNode.theDataStreamOutArgsNumber ) {
+      for ( j = theNode->GetNodeOutPortsSize() - aNode.theDataStreamOutArgsNumber - 1 ; j < theNode->GetNodeOutPortsSize() - 1 ; j++ ) {
+        cdebug << "GraphExecutor::OutNode::LoadNodes " << anInNode->Name()
+               << " OutPort " << theNode->GetChangeNodeOutPort( j )->PortName()
+               << " Kind( DataStreamParameter)" << endl ;
+        theNode->GetChangeNodeOutPort( j )->Kind( SUPERV::DataStreamParameter ) ;
+      }
+    }
   }
   for ( i = 0 ; i < (int ) aListOfNodes.size() ; i++ ) {
     GraphBase::SNode aNode = aListOfNodes[ i ] ;
     anInNode = (GraphExecutor::InNode * ) GetChangeGraphNode( aNode.theName.c_str() )->GetInNode() ;
-    cdebug << "GraphExecutor::OutNode::LoadNodes " << anInNode->Name() << "IsOneOfGOTONodes "
+    cdebug << "GraphExecutor::OutNode::LoadNodes " << anInNode->Name() << " IsOneOfGOTONodes "
            << anInNode->IsOneOfGOTONodes() << " " << aNode.theCoupledNode.c_str() << endl ;
     if ( anInNode->IsOneOfGOTONodes() && strlen( aNode.theCoupledNode.c_str() ) ) {
       GraphBase::GOTONode * aCoupledNode ;