1 // SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
3 // Copyright (C) 2003 CEA/DEN, EDF R&D
7 // File : FNode_Impl.cxx
8 // Author : Jean Rahuel
18 //#include "utilities.h"
20 #include "FNode_Impl.hxx"
22 FNode_Impl::FNode_Impl() {
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 // Engines_Component_i(orb, poa, contId, instanceName, interfaceName, false, false) {
37 CNode_Impl( orb , poa , contId , instanceName , interfaceName , aDataFlowEditor , NodeService , NodeName , NodeKindOfNode , NULLSTRING ) {
38 // MESSAGE( NodeName << " " );
39 beginService( "FNode_Impl::FNode_Impl" );
40 // cout << "FNode_Impl::FNode_Impl -->" << endl ;
42 _id = _poa->activate_object(_thisObj);
43 _Orb = CORBA::ORB::_duplicate(orb);
46 // DataFlowNode( DataFlowEditor()->AddNode( NodeService , NodeComponentName ,
47 // NodeInterfaceName , NodeName ,
48 // NodeKindOfNode ) ) ;
49 DataFlowNode()->ComponentName( NodeComponentName ) ;
50 DataFlowNode()->InterfaceName( NodeInterfaceName ) ;
51 endService( "FNode_Impl::FNode_Impl" );
52 // cout << "<-- FNode_Impl::FNode_Impl" << endl ;
55 FNode_Impl::FNode_Impl( CORBA::ORB_ptr orb ,
56 PortableServer::POA_ptr poa ,
57 PortableServer::ObjectId * contId ,
58 const char * instanceName ,
59 const char * interfaceName ,
60 GraphEditor::DataFlow * aDataFlowEditor ,
61 GraphEditor::InNode * aDataFlowNode ) :
62 // Engines_Component_i(orb, poa, contId, instanceName, interfaceName, false, false) {
63 CNode_Impl( orb , poa , contId , instanceName , interfaceName , aDataFlowEditor , aDataFlowNode ) {
64 MESSAGE( DataFlowNode()->Name() << " " );
65 beginService( "FNode_Impl::FNode_Impl" );
67 _id = _poa->activate_object(_thisObj);
68 _Orb = CORBA::ORB::_duplicate(orb);
71 endService( "FNode_Impl::FNode_Impl" );
74 FNode_Impl::~FNode_Impl() {
75 beginService( "FNode_Impl::~Node_Impl" );
76 endService( "FNode_Impl::~Node_Impl" );
79 void FNode_Impl::destroy() {
80 beginService( "FNode_Impl::Destroy" );
81 if ( DataFlowEditor()->IsEditing() ) {
83 _poa->deactivate_object(*_id) ;
84 CORBA::release(_poa) ;
86 _thisObj->_remove_ref();
89 endService( "FNode_Impl::Destroy" );
92 bool FNode_Impl::Delete() {
93 // beginService( "FNode_Impl::Delete" );
95 if ( DataFlowEditor()->IsEditing() ) {
96 RetVal = DataFlowEditor()->RemoveNode( Name() ) ;
98 RetVal = DataFlowEditor()->IsValid() ;
100 // endService( "FNode_Impl::Delete" );
104 char * FNode_Impl::GetComponentName() {
105 // beginService( "FNode_Impl::GetComponentName" );
106 char * RetVal = DataFlowNode()->ComponentName() ;
107 // endService( "FNode_Impl::GetComponentName" );
108 return CORBA::string_dup( RetVal );
110 bool FNode_Impl::SetComponentName( const char * aComponentName ) {
111 // beginService( "FNode_Impl::SetComponentName" );
112 bool RetVal = false ;
113 if ( DataFlowEditor()->IsEditing() ) {
114 RetVal = DataFlowNode()->ComponentName( aComponentName ) ;
116 // endService( "FNode_Impl::SetComponentName" );
119 char * FNode_Impl::GetInterfaceName() {
120 // beginService( "FNode_Impl::GetInterfaceName" );
121 char * RetVal = DataFlowNode()->InterfaceName() ;
122 // endService( "FNode_Impl::GetInterfaceName" );
123 return CORBA::string_dup( RetVal );
125 bool FNode_Impl::SetInterfaceName( const char * anInterfaceName ) {
126 // beginService( "FNode_Impl::SetInterfaceName" );
127 bool RetVal = false ;
128 if ( DataFlowEditor()->IsEditing() ) {
129 RetVal = DataFlowNode()->InterfaceName( anInterfaceName ) ;
131 // endService( "FNode_Impl::SetInterfaceName" );
134 char * FNode_Impl::GetContainer() {
135 // beginService( "FNode_Impl::GetContainer" );
136 char * RetVal = DataFlowNode()->Computer() ;
137 // endService( "FNode_Impl::GetContainer" );
138 return CORBA::string_dup( RetVal ) ;
140 bool FNode_Impl::SetContainer( const char * aDataFlowContainer ) {
141 // beginService( "FNode_Impl::SetContainer" );
142 bool RetVal = false ;
143 GraphExecutor::DataFlow * _DataFlowExecutor = DataFlowEditor()->Executor() ;
144 if ( DataFlowEditor()->IsEditing() ) {
145 RetVal = DataFlowNode()->Computer( aDataFlowContainer ) ;
147 else if ( _DataFlowExecutor && ( _DataFlowExecutor->IsSuspended() ||
148 _DataFlowExecutor->IsSuspended( DataFlowNode()->Name() ) ) ) {
149 if ( _DataFlowExecutor->GetChangeGraphNode( DataFlowNode()->Name() ) ) {
150 RetVal = ((GraphEditor::InNode * ) _DataFlowExecutor->GetChangeGraphNode( DataFlowNode()->Name() )->GetInNode())->Computer( aDataFlowContainer ) ;
153 // endService( "FNode_Impl::SetContainer" );