]> SALOME platform Git repositories - modules/superv.git/blob - src/GraphBase/DataFlowBase_GOTONode.cxx
Salome HOME
method getViewType() added that returns CANVAS, CONTROL or CANVASTABLE constant corre...
[modules/superv.git] / src / GraphBase / DataFlowBase_GOTONode.cxx
1 //  SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : DataFlowBase_GOTONode.cxx
8 //  Author : Jean Rahuel, CEA
9 //  Module : SUPERV
10 //  $Header:
11
12 using namespace std;
13 //#include <sstream>
14 //#include <iostream>
15
16 #include "DataFlowBase_GOTONode.hxx"
17
18 GraphBase::GOTONode::GOTONode() :
19   GraphBase::InLineNode::InLineNode() {
20
21   CoupledNode( NULL ) ;
22   _CoupledNodeName = NULL ;
23   cdebug << "GraphBase::GOTONode::GOTONode "  << this 
24          << " _Name " << (void *) Name() << " " << Name() << " _Comment "
25          << (void *) Comment() << " "  << Comment() << " "  << endl ;
26
27 }
28
29 GraphBase::GOTONode::GOTONode( CORBA::ORB_ptr ORB ,
30                                SALOME_NamingService* ptrNamingService ,
31                                const char *DataFlowName ,
32                                const SUPERV::KindOfNode DataFlowkind ,
33                                int * Graph_prof_debug ,
34                                ofstream * Graph_fdebug ) :
35   GraphBase::InLineNode::InLineNode( ORB , ptrNamingService , DataFlowName , DataFlowkind , Graph_prof_debug , Graph_fdebug ) {
36
37   CoupledNode( NULL ) ;
38   _CoupledNodeName = NULL ;
39   cdebug << "GraphBase::GOTONode::GOTONode "  << this 
40          << " _Name " << (void *) Name() << " " << Name() << " _Comment "
41          << (void *) Comment() << " "  << Comment() << " "  << endl ;
42
43 }
44
45 GraphBase::GOTONode::GOTONode( CORBA::ORB_ptr ORB ,
46                                SALOME_NamingService* ptrNamingService ,
47                                const char *FuncName ,
48                                const SUPERV::ListOfStrings & aPythonFunction ,
49                                const char *NodeName ,
50                                const SUPERV::KindOfNode akind ,
51                                const SUPERV::SDate NodeFirstCreation ,
52                                const SUPERV::SDate NodeLastModification  ,
53                                const char * NodeEditorRelease ,
54                                const char * NodeAuthor ,
55                                const char * NodeComment ,
56                                const bool   GeneratedName ,
57                                const long   X ,
58                                const long   Y ,
59                                int * Graph_prof_debug ,
60                                ofstream * Graph_fdebug ) :
61   GraphBase::InLineNode::InLineNode( ORB , ptrNamingService , FuncName , aPythonFunction ,
62                                      NodeName , akind , NodeFirstCreation ,
63                                      NodeLastModification  , NodeEditorRelease ,
64                                      NodeAuthor , NodeComment , GeneratedName ,
65                                      X , Y , Graph_prof_debug , Graph_fdebug ) {
66
67   CoupledNode( NULL ) ;
68   _CoupledNodeName = NULL ;
69   cdebug_in << "GraphBase::GOTONode::GOTONode "  << this 
70             << "' _Name " << (void *) Name() << " '" << Name() << " _Comment "
71             << (void *) Comment() << " "  << Comment() << " " 
72             << " KindOfNode " << Kind() << " FuncName " << FuncName
73             << " ServiceName " << ServiceName() << " In("
74             << ServiceInParameter().length()
75             << ") Out(" << ServiceOutParameter().length() << ")" << endl ;
76
77   cdebug_out << "GraphBase::GOTONode::GOTONode" << endl;
78 }
79
80 GraphBase::GOTONode::~GOTONode() {
81   cdebug << "GraphBase::GOTONode::~GOTONode "  << this 
82          << " _Name " << (void *) Name() << " " << Name() << " _Comment "
83          << (void *) Comment() << " "  << Comment() << " "  << endl ;
84 //  if ( _ComponentName != NULLSTRING )
85 //    delete [] _ComponentName ;
86 //  delete [] _Name ;
87 //  delete [] _EditorRelease ;
88 //  if ( _Author != NULLSTRING )
89 //    delete [] _Author ;
90 //  if ( _Computer != FACTORYSERVER )
91 //    delete [] _Computer;
92 //  if ( _Comment != NULLSTRING )
93 //    delete [] _Comment;
94 }
95
96 void GraphBase::GOTONode::CoupledNode( GraphBase::InLineNode * aCoupledNode ) {
97   cdebug << this << " " << Name() << " GraphBase::GOTONode::CoupledNode( " ;
98   if ( aCoupledNode ) {
99     CoupledNodeName( aCoupledNode->Name() ) ;
100     cdebug << aCoupledNode->Name() ;
101   }
102   else {
103     cdebug << "NULL" ;
104   }
105   cdebug << " )" << endl ;
106   _CoupledNode = aCoupledNode ;
107 }
108
109 const GraphBase::InLineNode * GraphBase::GOTONode::CoupledNode() const {
110 //  cdebug << this << " " << Name() << " GraphBase::GOTONode::CoupledNode() --> " ;
111 //  if ( _CoupledNode ) {
112 //    cdebug << _CoupledNode->Name() ;
113 //  }
114 //  else {
115 //    cdebug << "NULL" ;
116 //  }
117 //  cdebug << endl ;
118   return _CoupledNode ;
119 }
120
121 GraphBase::InLineNode * GraphBase::GOTONode::CoupledNode() {
122 //  cdebug << this << " " << Name() << " GraphBase::GOTONode::CoupledNode() --> " ;
123 //  if ( _CoupledNode ) {
124 //    cdebug << _CoupledNode->Name() ;
125 //  }
126 //  else {
127 //    cdebug << "NULL" ;
128 //  }
129 //  cdebug << endl ;
130   return _CoupledNode ;
131 }
132
133 void GraphBase::GOTONode::CoupledNodeName( const char * aCoupledNodeName ) {
134   if ( _CoupledNodeName ) {
135     delete [] _CoupledNodeName ;
136   }
137   _CoupledNodeName = new char [ strlen( aCoupledNodeName ) + 1 ] ;
138   strcpy( _CoupledNodeName , aCoupledNodeName ) ;
139   cdebug << this << " " << Name() << " GraphBase::GOTONode::CoupledNodeName() --> " ;
140   if ( _CoupledNodeName ) {
141     cdebug << _CoupledNodeName ;
142   }
143   else {
144     cdebug << "NULL" ;
145   }
146   cdebug << endl ;
147 }
148 char * GraphBase::GOTONode::CoupledNodeName() const {
149   cdebug << this << " " << Name() << " GraphBase::GOTONode::CoupledNodeName() --> " ;
150   if ( _CoupledNodeName ) {
151     cdebug << _CoupledNodeName ;
152   }
153   else {
154     cdebug << "NULL" ;
155   }
156   return my_strdup( _CoupledNodeName ) ;
157 }
158
159 //bool GraphBase::GOTONode::SaveXML( ostream &f , char *Tabs ,
160 bool GraphBase::GOTONode::SaveXML( QDomDocument & Graph , QDomElement & info ,
161                                    int XCoordinate , int YCoordinate ) const {
162   GraphBase::ListOfFuncName aFuncNames ; 
163   GraphBase::ListOfPythonFunctions aPythonFunction ;
164   if ( PyFuncName() ) {
165     aFuncNames.resize( 1 ) ;
166     aFuncNames[0] = CORBA::string_dup( PyFuncName() ) ;
167     aPythonFunction.resize( 1 ) ;
168     aPythonFunction[0] = PythonFunction() ;
169   }
170   char * CoupledName = "" ;
171   if ( CoupledNode() ) {
172     CoupledName = CoupledNode()->Name() ;
173   }
174 //  return GraphBase::ComputingNode::SaveXML( f , Tabs , "" , "" , "" ,
175   return GraphBase::ComputingNode::SaveXML( Graph , info , "" , "" , "" ,
176                                             CoupledName ,
177                                             aFuncNames , aPythonFunction ,
178                                             XCoordinate , YCoordinate ) ;
179 }
180
181 bool GraphBase::GOTONode::SavePY( ostream &f , const char * aGraphName ,
182                                   int XCoordinate , int YCoordinate ) const {
183   GraphBase::ListOfFuncName aFuncNames ; 
184   GraphBase::ListOfPythonFunctions aPythonFunction ;
185   if ( PyFuncName() ) {
186     aFuncNames.resize( 1 ) ;
187     aFuncNames[0] = CORBA::string_dup( PyFuncName() ) ;
188     aPythonFunction.resize( 1 ) ;
189     aPythonFunction[0] = PythonFunction() ;
190   }
191   return GraphBase::ComputingNode::SavePY( f , aGraphName , "" , "" , "" ,
192                                            CoupledNode() ,
193                                            aFuncNames , aPythonFunction ,
194                                            XCoordinate , YCoordinate ) ;
195 }
196