]> SALOME platform Git repositories - modules/superv.git/blobdiff - src/GraphBase/DataFlowBase_ComputingNode.hxx
Salome HOME
DCQ:prepare 2.0.0
[modules/superv.git] / src / GraphBase / DataFlowBase_ComputingNode.hxx
index 3458fa8cb8133e1a9dce0fd528de0a1d21704e13..65e38489bdb0521f54fadaa42bec6634042725b5 100644 (file)
@@ -18,6 +18,8 @@
 
 namespace GraphBase {
 
+  class Graph ;
+
   class InLineNode ;
 
   class ComputingNode : public StreamNode {
@@ -75,8 +77,9 @@ namespace GraphBase {
       ComputingNode( CORBA::ORB_ptr ORB ,
                      SALOME_NamingService* ptrNamingService ,
                      const char * DataFlowName ,
-                     int * Graph_prof_debug = NULL ,
-                     ofstream * Graph_fdebug = NULL ) ;
+                     const SUPERV::KindOfNode DataFlowkind ,
+                     int * Graph_prof_debug ,
+                     ofstream * Graph_fdebug ) ;
       ComputingNode( CORBA::ORB_ptr ORB ,
                      SALOME_NamingService* ptrNamingService ,
                      const SALOME_ModuleCatalog::Service& NodeService ,
@@ -175,15 +178,21 @@ namespace GraphBase {
 
       bool RemovePorts( const char* aNodeName ) ;
 
+      void SetMacroPorts( GraphBase::Graph * aGraph ) ;
+      void UpdateMacroPorts( GraphBase::Graph * aGraph ) ;
+      void SetMacroDatas( GraphBase::Graph * aGraph , GraphBase::Graph * aGraphOfMacroGraph ) ;
+
       void DelInPort( const char * InputParameterName ) ;
       void DelOutPort( const char * OutputParameterName ) ;
 
       InPort * AddInPort( const char * InputParameterName ,
                           const char * InputParameterType ,
-                          const SUPERV::KindOfPort aKindOfPort ) ;
+                          const SUPERV::KindOfPort aKindOfPort ,
+                          int index = -1 ) ;
       OutPort * AddOutPort( const char * OutputParameterName ,
                             const char * OutputParameterType ,
-                            const SUPERV::KindOfPort aKindOfPort ) ;
+                            const SUPERV::KindOfPort aKindOfPort ,
+                            int index = -1 ) ;
 
       void DelInDataStreamPort( const char * InputParameterName ) ;
       void DelOutDataStreamPort( const char * OutputParameterName ) ;
@@ -191,31 +200,36 @@ namespace GraphBase {
       InDataStreamPort * AddInDataStreamPort( const char * InputParameterName ,
                                               const SALOME_ModuleCatalog::DataStreamType InputParameterType ,
                                               const SALOME_ModuleCatalog::DataStreamDependency aDependency ,
-                                              const SUPERV::KindOfPort aKindOfPort ) ;
+                                              const SUPERV::KindOfPort aKindOfPort ,
+                                              int index = -1 ) ;
       OutDataStreamPort * AddOutDataStreamPort( const char * OutputParameterName ,
                                                 const SALOME_ModuleCatalog::DataStreamType OutputParameterType ,
                                                 const SALOME_ModuleCatalog::DataStreamDependency aDependency ,
-                                                const SUPERV::KindOfPort aKindOfPort ) ;
+                                                const SUPERV::KindOfPort aKindOfPort ,
+                                                int index = -1 ) ;
 
 //      ComputingNode * LinkedNodes( int i ) const { return (GraphBase::ComputingNode *) GraphBase::StreamNode::LinkedNodes( i ) ; } ;
 
-      void AddLink( GraphBase::ComputingNode * ToNode ) {
-           GraphBase::StreamNode::AddLink( ToNode ) ;
+      void AddLinkedNode( GraphBase::ComputingNode * ToNode ) {
+           GraphBase::StreamNode::AddLinkedNode( ToNode ) ;
            cdebug << Name() << "->GraphBase::ComputingNode::AddLinkedNode( " << ToNode->Name()
                   << ") ConnectedInPortsNumber " << ToNode->ConnectedInPortsNumber()
                   << " + 1 Service " << ServiceName() << endl ;
            ToNode->IncrConnectedInPortsNumber() ; } ;
 
-      void RemoveLink( GraphBase::ComputingNode * ToNode ) {
-           if ( GraphBase::StreamNode::RemoveLink( ToNode ) ) {
-             cdebug << "GraphBase::StreamNode::RemoveLink to " << ToNode->Name() << " from "
+      bool RemoveLinkedNode( GraphBase::ComputingNode * ToNode ) {
+           bool RetVal = GraphBase::StreamNode::RemoveLinkedNode( ToNode ) ;
+           if ( RetVal ) {
+             cdebug << "GraphBase::StreamNode::RemoveLinkedNode to " << ToNode->Name() << " from "
                     << Name() << " ConnectedInPortsNumber "
                     << ToNode->ConnectedInPortsNumber() - 1 << endl ;
-             ToNode->DecrConnectedInPortsNumber() ; } } ;
+             ToNode->DecrConnectedInPortsNumber() ;
+          }
+           return RetVal ; } ;
 
-      void ReNameLink( const char* OldNodeName ,
-                       const char* NewNodeName ) {
-           GraphBase::StreamNode::ReNameLink( OldNodeName , NewNodeName ) ; } ;
+      void ReNameLinkedNode( const char* OldNodeName ,
+                             const char* NewNodeName ) {
+           GraphBase::StreamNode::ReNameLinkedNode( OldNodeName , NewNodeName ) ; } ;
 
       void IncrConnectedInPortsNumber() {
            cdebug << "IncrConnectedInPortsNumber " << Name() << " -> "