Salome HOME
Detail ({} added)
[modules/superv.git] / src / GraphBase / DataFlowBase_DataNode.cxx
index 8c4eecc4517861f0d833e787410b85e60513c4e7..b0644c839e1712cbed4d51420524d101f58a75b6 100644 (file)
@@ -30,41 +30,44 @@ using namespace std;
 #include "DataFlowBase_DataNode.hxx"
 
 GraphBase::DataNode::DataNode() :
-           InLineNode() {
+           GOTONode() {
   MESSAGE( "GraphBase::DataNode::DataNode" );
   _Created = false ;
 }
 
 GraphBase::DataNode::DataNode( CORBA::ORB_ptr ORB ,
                                SALOME_NamingService* ptrNamingService ,
-                               const char *DataFlowName ) :
-           InLineNode( ORB , ptrNamingService , DataFlowName ) {
+                               const char *DataFlowName ,
+                               const SUPERV::KindOfNode DataFlowkind ,
+                               int * Graph_prof_debug ,
+                               ofstream * Graph_fdebug ) :
+           GOTONode( ORB , ptrNamingService , DataFlowName , DataFlowkind , Graph_prof_debug , Graph_fdebug ) {
 //  MESSAGE( "GraphBase::DataNode::DataNode" );
   cdebug << "GraphBase::DataNode::DataNode" << endl ;
   _Created = false ;
 }
 
-GraphBase::DataNode::DataNode(
-                CORBA::ORB_ptr ORB ,
-                SALOME_NamingService* ptrNamingService ,
-                const SALOME_ModuleCatalog::Service& DataFlowService ,
-                const char *DataFlowName ,
-                const SUPERV::KindOfNode DataFlowkind ,
-                const SUPERV::SDate DataFlowFirstCreation ,
-                const SUPERV::SDate DataFlowLastModification ,
-                const char * DataFlowEditorRelease ,
-                const char * DataFlowAuthor ,
-                const char * DataFlowComment ) :
-           InLineNode( ORB , ptrNamingService , DataFlowService ,
-                       DataFlowName , DataFlowkind ,
-                       DataFlowFirstCreation , DataFlowLastModification  ,
-                       DataFlowEditorRelease , DataFlowAuthor ,
-                       DataFlowComment , false , 0 , 0) {
+GraphBase::DataNode::DataNode( CORBA::ORB_ptr ORB ,
+                               SALOME_NamingService* ptrNamingService ,
+                               const SALOME_ModuleCatalog::Service& DataFlowService ,
+                               const char *DataFlowName ,
+                               const SUPERV::KindOfNode DataFlowkind ,
+                               const SUPERV::SDate DataFlowFirstCreation ,
+                               const SUPERV::SDate DataFlowLastModification ,
+                               const char * DataFlowEditorRelease ,
+                               const char * DataFlowAuthor ,
+                               const char * DataFlowComment ) :
+           GOTONode( ORB , ptrNamingService ,
+                     DataFlowName , SUPERV::ListOfStrings() , DataFlowName , DataFlowkind ,
+                     DataFlowFirstCreation , DataFlowLastModification  ,
+                     DataFlowEditorRelease , DataFlowAuthor ,
+                     DataFlowComment , false , 0 , 0) {
 //  MESSAGE( "GraphBase::DataNode::DataNode" );
 }
 
 GraphBase::DataNode::~DataNode() {
 //  MESSAGE( "GraphBase::DataNode::~DataNode" );
+  cdebug << "GraphBase::DataNode::~DataNode" << endl ;
 }
 
 void GraphBase::DataNode::DataService( CORBA::ORB_ptr ORB ,
@@ -72,19 +75,20 @@ void GraphBase::DataNode::DataService( CORBA::ORB_ptr ORB ,
                                        int * Graph_prof_debug ,
                                        ofstream * Graph_fdebug ) {
   cdebug << "GraphBase::DataNode::DataService : DataFlowPortsOfNode of "
-         << aService.ServiceName << endl ;
+         << aService << endl ;
   DefPortsOfNode( ORB , aService , NamePtr() , Kind() ,
                   Graph_prof_debug , Graph_fdebug ) ;
 
-  if ( _Created )
+  if ( _Created ) {
     delete _DataFlowDataPorts ;
+  }
   SALOME_ModuleCatalog::Service aReversedService ;
   aReversedService.ServiceName = aService.ServiceName ;
   aReversedService.ServiceinParameter = aService.ServiceoutParameter ;
   aReversedService.ServiceoutParameter = aService.ServiceinParameter ;
   _DataFlowDataPorts = new PortsOfNode() ;
   cdebug << "GraphBase::DataNode::DataService : Mirrored DataFlowPortsOfNode of "
-         << aReversedService.ServiceName << endl ;
+         << aReversedService << endl ;
   _DataFlowDataPorts->DefPortsOfNode( ORB , aReversedService , NamePtr() , Kind() ,
                                       Graph_prof_debug , Graph_fdebug ) ;
   _Created = true ;
@@ -92,7 +96,7 @@ void GraphBase::DataNode::DataService( CORBA::ORB_ptr ORB ,
 
 int GraphBase::DataNode::CheckDataServerNodes() const {
 
-  cdebug << "GraphBase::Graph::DataServerNodes ()" << endl;
+  cdebug << "GraphBase::DataNode::CheckDataServerNodes :" << endl;
 
   int i , ierr = 0 ;
 
@@ -101,38 +105,38 @@ int GraphBase::DataNode::CheckDataServerNodes() const {
     const GraphBase::OutPort * anOutPort = _DataFlowDataPorts->GetNodeOutPort(i) ;
 //    if ( !anOutPort->IsGate() && !anOutPort->IsDataStream() && !anOutPort->IsDataConnected() ) {
     if ( !anOutPort->IsGate() && !anOutPort->IsDataConnected() ) {
-      cdebug << "InPort " << anOutPort->PortName() << " " << anOutPort->PortType()
-             << " of DataFlow " << Name() << " has NO Data." << endl ;
-      ierr++ ;
+      if ( anOutPort->IsExternConnected() && GraphMacroLevel() != 0 ) {
+        cdebug << "InPort " << anOutPort->PortName() << " " << anOutPort->PortType() << " "
+               << anOutPort->PortStatus() << " of DataFlow " << Name()
+               << " is ExternConnected. GraphMacroLevel " << GraphMacroLevel() << endl ;
+      }
+      else {
+        cdebug << "InPort " << anOutPort->PortName() << " " << anOutPort->PortType() << " "
+               << anOutPort->PortStatus() << " of DataFlow " << Name() << " has NO Data. GraphMacroLevel "
+               << GraphMacroLevel() << endl ;
+        ierr++ ;
+      }
     }
     else {
-      cdebug << "InPort " << anOutPort->PortName() << " " << anOutPort->PortType()
-             << " of DataFlow " << Name()  << " has Data : "
-//           << _DataFlowDataPorts->GetNodeOutPort(i)->Value() << " kind "
-//           << _DataFlowDataPorts->GetNodeOutPort(i)->Kind()
+      cdebug << "InPort " << anOutPort->PortName() << " " << anOutPort->PortType() << " "
+             << anOutPort->PortStatus() << " of DataFlow " << Name()  << " has Data : "
              << endl ;
     }
   }
 
   for ( i = 0 ; i < _DataFlowDataPorts->GetNodeInPortsSize() ; i++ ) {
-    if ( !_DataFlowDataPorts->GetNodeInPort(i)->IsConnected() ) {
+    if ( _DataFlowDataPorts->GetNodeInPort(i)->IsPortConnected() ) {
       cdebug << "OutPort " << _DataFlowDataPorts->GetNodeInPort(i)->PortName()
-             << " of DataFlow " << Name()  << " has Data " << endl ;
-//      ierr++ ;
+             << " of DataFlow " << Name()  << " is Connected" << endl ;
     }
     else {
       cdebug << "OutPort " << _DataFlowDataPorts->GetNodeInPort(i)->PortName()
-             << " of DataFlow " << Name()  << " has NO Data : "
-//           << _DataFlowDataPorts->GetChangeNodeInPort(i)->GetLink()->Value()
-//           << " kind "
-//           << _DataFlowDataPorts->GetChangeNodeInPort(i)->GetLink()->Kind()
-             << endl ;
-      ierr++ ;
+             << " of DataFlow " << Name()  << " is NOT Connected" << endl ;
     }
   }
 
   if ( ierr ) {
-    cdebug << "Some Input Data missing in the DataFlow " << Name() << endl ;
+    cdebug << "In the DataFlow " << Name() << " " << ierr << " Some Input Data is missing" << endl ;
   }
 
   return ierr ;