Salome HOME
DCQ:prepare 2.0.0
[modules/superv.git] / src / Supervision / CNode_Impl.hxx
index eeb402835a9a0499fd9f7533916eb2452dafb612..d67d4d2f61c15857fa2ab1de241b1d43ece66fee 100644 (file)
@@ -31,8 +31,10 @@ class CNode_Impl : public POA_SUPERV::CNode ,
     PortableServer::POA_ptr    _Poa ;
     PortableServer::ObjectId * _ContId ;
 
-    GraphEditor::DataFlow * _DataFlowEditor ;
-    GraphEditor::InNode   * _DataFlowNode ;
+    GraphEditor::DataFlow   * _DataFlowEditor ;
+    GraphExecutor::DataFlow * _DataFlowExecutor ;
+    GraphEditor::InNode     * _DataFlowNode ;
+    GraphExecutor::InNode   * _DataFlowExecutorNode ;
     bool _IsNode ;
 
   public:
@@ -42,7 +44,8 @@ class CNode_Impl : public POA_SUPERV::CNode ,
                PortableServer::ObjectId * contId , 
                const char *instanceName ,
                 const char *interfaceName ,
-               const char *aDataFlowName ) ;
+               const char *aDataFlowName ,
+                const SUPERV::KindOfNode aKindOfNode ) ;
     CNode_Impl( CORBA::ORB_ptr orb ,
                PortableServer::POA_ptr poa ,
                PortableServer::ObjectId * contId , 
@@ -72,18 +75,35 @@ class CNode_Impl : public POA_SUPERV::CNode ,
                 const char *interfaceName ,
                 GraphEditor::DataFlow * DataFlowEditor ,
                 GraphEditor::InNode * DataFlowNode ) ;
+    CNode_Impl( CORBA::ORB_ptr orb ,
+               PortableServer::POA_ptr poa ,
+               PortableServer::ObjectId * contId , 
+               const char *instanceName ,
+                const char *interfaceName ,
+                GraphExecutor::DataFlow * DataFlowExecutor ,
+                GraphExecutor::InNode * DataFlowExecutorNode ) ;
     virtual ~CNode_Impl() ;
     virtual void destroy() ;
     virtual bool Delete() ;
 
+    void DeletePorts() ;
+
     virtual void DataFlowEditor( GraphEditor::DataFlow * DataFlowEditor ) {
             _DataFlowEditor = DataFlowEditor ; } ;
     virtual GraphEditor::DataFlow * DataFlowEditor() {
             return _DataFlowEditor ; } ;
+    virtual void DataFlowExecutor( GraphExecutor::DataFlow * DataFlowExecutor ) {
+            _DataFlowExecutor = DataFlowExecutor ; } ;
+    virtual GraphExecutor::DataFlow * DataFlowExecutor() {
+            return _DataFlowExecutor ; } ;
     virtual void DataFlowNode( GraphEditor::InNode * DataFlowNode ) {
             _DataFlowNode = DataFlowNode ; } ;
     virtual GraphEditor::InNode * DataFlowNode() {
             return _DataFlowNode ; } ;
+    virtual void DataFlowNode( GraphExecutor::InNode * DataFlowExecutorNode ) {
+            _DataFlowExecutorNode = DataFlowExecutorNode ; } ;
+    virtual GraphExecutor::InNode * DataFlowExecutorNode() {
+            return _DataFlowExecutorNode ; } ;
 
     virtual char * Name() ;
     virtual bool SetName( const char * aDataFlowName ) ;
@@ -116,7 +136,13 @@ class CNode_Impl : public POA_SUPERV::CNode ,
               _DataFlowNode->SetObjRef( aNode ) ;
            }
             else {
-              _DataFlowEditor->Graph()->SetObjRef( SUPERV::Graph::_narrow( aNode ) ) ;
+              if ( _DataFlowEditor ) {
+                _DataFlowEditor->Graph()->SetObjRef( SUPERV::Graph::_narrow( aNode ) ) ;
+             }
+              if ( _DataFlowExecutor ) {
+                _DataFlowExecutor->Graph()->SetObjRef( SUPERV::Graph::_narrow( aNode ) ) ;
+             }
+
             }
           } ;
 
@@ -138,6 +164,8 @@ class CNode_Impl : public POA_SUPERV::CNode ,
 
     virtual SUPERV::Port_ptr Input( const char * ToServiceParameterName ,
                                     const SUPERV::Value_ptr aValue ) ;
+//    virtual bool InputOfAny( const char * ToServiceParameterName ,
+//                             const CORBA::Any & aValue ) ;
 
     virtual SUPERV::Port_ptr GetInPort( const char * aParameterName ) ;
     virtual SUPERV::Port_ptr GetOutPort( const char * aParameterName ) ;
@@ -148,6 +176,8 @@ class CNode_Impl : public POA_SUPERV::CNode ,
     virtual SUPERV::ListOfPorts * Ports() ;
     virtual SUPERV::ListOfStreamPorts * StreamPorts() ;
 
+    virtual bool HasStreamPort() ;
+
     virtual SUPERV::ListOfLinks * Links() ;
     virtual SUPERV::ListOfStreamLinks * StreamLinks() ;
 
@@ -156,6 +186,11 @@ class CNode_Impl : public POA_SUPERV::CNode ,
 
     virtual bool IsStreamGraph() ;
     virtual bool IsGraph() ;
+    virtual bool IsMacro() ;
+    virtual bool IsFlowMacro() ;
+    virtual bool IsStreamMacro() ;
+    virtual bool IsHeadGraph() ;
+    virtual long GraphLevel() ;
     virtual bool IsComputing() ;
     virtual bool IsFactory() ;
     virtual bool IsInLine() ;
@@ -186,7 +221,7 @@ class CNode_Impl : public POA_SUPERV::CNode ,
 
     virtual long Thread() ;
 
-    virtual SUPERV::AutomatonState AutoState() ;
+    GraphExecutor::AutomatonState AutoState() ;
 
     virtual bool ReadyW() ;
     virtual bool RunningW() ;