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