Salome HOME
942649746b3449d2933e0ffc6f7f6f62a38fe8af
[modules/superv.git] / src / Supervision / FNode_Impl.cxx
1 //  SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : FNode_Impl.cxx
8 //  Author : Jean Rahuel
9 //  Module : SUPERV
10 //  $Header: 
11
12 using namespace std;
13 #include <stdio.h>
14 #include <fstream>
15 //#include <sstream>
16 #include <string>
17
18 //#include "utilities.h"
19
20 #include "FNode_Impl.hxx"
21
22 FNode_Impl::FNode_Impl() {
23 }
24
25 FNode_Impl::FNode_Impl( CORBA::ORB_ptr orb ,
26                         PortableServer::POA_ptr poa ,
27                         PortableServer::ObjectId * contId , 
28                         const char * instanceName ,
29                         const char * interfaceName ,
30                         GraphEditor::DataFlow * aDataFlowEditor ,
31                         const SALOME_ModuleCatalog::Service &NodeService ,
32                         const char * NodeComponentName ,
33                         const char * NodeInterfaceName ,
34                         const char * NodeName ,
35                         const SUPERV::KindOfNode NodeKindOfNode ,
36                         bool isCimpl ) :
37 //  Engines_Component_i(orb, poa, contId, instanceName, interfaceName, false, false) {
38   CNode_Impl( orb , poa , contId , instanceName , interfaceName , aDataFlowEditor , NodeService , NodeName , NodeKindOfNode , NULLSTRING , SUPERV::ListOfStrings() , isCimpl ) {
39 //  MESSAGE( NodeName << " " );
40   beginService( "FNode_Impl::FNode_Impl" );
41 //  cout << "FNode_Impl::FNode_Impl -->" << endl ;
42   _thisObj = this ;
43   _id = _poa->activate_object(_thisObj);
44   _Orb = CORBA::ORB::_duplicate(orb);
45   _Poa = poa ;
46   _ContId = contId ;
47   _isCimpl = isCimpl ;
48 //  DataFlowNode( DataFlowEditor()->AddNode( NodeService , NodeComponentName ,
49 //                                           NodeInterfaceName , NodeName ,
50 //                                           NodeKindOfNode ) ) ;
51   DataFlowNode()->ComponentName( NodeComponentName ) ;
52   DataFlowNode()->InterfaceName( NodeInterfaceName ) ;
53   endService( "FNode_Impl::FNode_Impl" );  
54 //  cout << "<-- FNode_Impl::FNode_Impl" << endl ;
55 }
56
57 FNode_Impl::FNode_Impl( CORBA::ORB_ptr orb ,
58                         PortableServer::POA_ptr poa ,
59                         PortableServer::ObjectId * contId , 
60                         const char * instanceName ,
61                         const char * interfaceName ,
62                         GraphEditor::DataFlow * aDataFlowEditor ,
63                         GraphEditor::InNode * aDataFlowNode ) :
64 //  Engines_Component_i(orb, poa, contId, instanceName, interfaceName, false, false) {
65   CNode_Impl( orb , poa , contId , instanceName , interfaceName , aDataFlowEditor , aDataFlowNode ) {
66   MESSAGE( DataFlowNode()->Name() << " " );
67   beginService( "FNode_Impl::FNode_Impl" );
68   _thisObj = this ;
69   _id = _poa->activate_object(_thisObj);
70   _Orb = CORBA::ORB::_duplicate(orb);
71   _Poa = poa ;
72   _ContId = contId ;
73   _isCimpl = true ;
74   endService( "FNode_Impl::FNode_Impl" );  
75 }
76
77 FNode_Impl::~FNode_Impl() {
78   beginService( "FNode_Impl::~Node_Impl" );
79   endService( "FNode_Impl::~Node_Impl" );
80 }
81
82 void FNode_Impl::destroy() {
83   beginService( "FNode_Impl::Destroy" );
84   if ( DataFlowEditor()->IsEditing() ) {
85     if ( Delete() ) {
86       _poa->deactivate_object(*_id) ;
87 //      CORBA::release(_poa) ;
88       delete(_id) ;
89 //      _thisObj->_remove_ref();
90     }
91     else {
92       MESSAGE("FNode_Impl::destroy ERROR ") ;
93     }
94   }
95 //  endService( "FNode_Impl::Destroy" );
96 }
97
98 bool FNode_Impl::Delete() {
99 //  beginService( "FNode_Impl::Delete" );
100   bool RetVal = false ;
101   if ( DataFlowEditor()->IsEditing() ) {
102     DeletePorts() ;
103     RetVal = DataFlowEditor()->RemoveNode( Name() ) ;
104     if ( RetVal ) {
105       DataFlowEditor()->UnValid() ;
106     }
107   }
108 //  endService( "FNode_Impl::Delete" );
109   return RetVal ;
110 }
111
112 char * FNode_Impl::GetComponentName() {
113 //  beginService( "FNode_Impl::GetComponentName" );
114   char * RetVal = DataFlowNode()->ComponentName() ;
115 //  endService( "FNode_Impl::GetComponentName" );
116   return CORBA::string_dup( RetVal );
117 }
118 bool FNode_Impl::SetComponentName( const char * aComponentName ) {
119 //  beginService( "FNode_Impl::SetComponentName" );
120   bool RetVal = false ;
121   RetVal = DataFlowNode()->ComponentName( aComponentName ) ;
122 //  endService( "FNode_Impl::SetComponentName" );
123   return RetVal ;
124 }
125 char * FNode_Impl::GetInterfaceName() {
126 //  beginService( "FNode_Impl::GetInterfaceName" );
127   char * RetVal = DataFlowNode()->InterfaceName() ;
128 //  endService( "FNode_Impl::GetInterfaceName" );
129   return CORBA::string_dup( RetVal );
130 }
131 bool FNode_Impl::SetInterfaceName( const char * anInterfaceName ) {
132 //  beginService( "FNode_Impl::SetInterfaceName" );
133   bool RetVal = false ;
134     RetVal = DataFlowNode()->InterfaceName( anInterfaceName ) ;
135 //  endService( "FNode_Impl::SetInterfaceName" );
136   return RetVal ;
137 }
138 char * FNode_Impl::GetContainer() {
139 //  beginService( "FNode_Impl::GetContainer" );
140   char * RetVal = DataFlowNode()->Computer() ;
141 //  endService( "FNode_Impl::GetContainer" );
142   return CORBA::string_dup( RetVal ) ;
143 }
144 bool FNode_Impl::SetContainer( const char * aDataFlowContainer ) {
145 //  beginService( "FNode_Impl::SetContainer" );
146   bool RetVal = false ;
147 //  GraphExecutor::DataFlow * _DataFlowExecutor = DataFlowEditor()->Executor() ;
148 //  if ( DataFlowEditor()->IsEditing() ) {
149     RetVal = DataFlowNode()->Computer( aDataFlowContainer ) ;
150 //  }
151 //  else if ( _DataFlowExecutor && ( _DataFlowExecutor->IsSuspended() ||
152 //            _DataFlowExecutor->IsSuspended( DataFlowNode()->Name() ) ) ) {
153 //    if ( _DataFlowExecutor->Graph()->GetChangeGraphNode( DataFlowNode()->Name() ) ) {
154 //      RetVal = ((GraphEditor::InNode * ) _DataFlowExecutor->Graph()->GetChangeGraphNode( DataFlowNode()->Name() )->GetInNode())->Computer( aDataFlowContainer ) ;
155       DataFlowEditor()->UnValid() ;
156 //    }
157 //  }
158 //  endService( "FNode_Impl::SetContainer" );
159   return RetVal ;
160 }
161