Salome HOME
DCQ : Merge with Ecole_Ete_a6.
[modules/superv.git] / src / GraphBase / DataFlowBase_Base.cxx
1 //  SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
2 //
3 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
5 // 
6 //  This library is free software; you can redistribute it and/or 
7 //  modify it under the terms of the GNU Lesser General Public 
8 //  License as published by the Free Software Foundation; either 
9 //  version 2.1 of the License. 
10 // 
11 //  This library is distributed in the hope that it will be useful, 
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
14 //  Lesser General Public License for more details. 
15 // 
16 //  You should have received a copy of the GNU Lesser General Public 
17 //  License along with this library; if not, write to the Free Software 
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
19 // 
20 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : DataFlowBase_Base.cxx
25 //  Author : Jean Rahuel, CEA
26 //  Module : SUPERV
27 //  $Header:
28
29 using namespace std;
30 #include "DataFlowBase_Base.hxx"
31
32 char *SuperVision_Version = "2.0" ;
33
34 char *NULLSTRING = "" ;
35
36 char *FACTORYSERVER = "localhost/FactoryServer" ;
37
38 GraphBase::Base::Base() {
39   _prof_debug = NULL ;
40   _fdebug = NULL ;
41 }
42
43 void GraphBase::Base::SetDebug( CORBA::ORB_ptr ORB ,
44                                 int * theprof_debug , ofstream * thefdebug ) {
45   if ( _prof_debug == NULL ) {
46 //    *thefdebug << "GraphBase::Base::SetDebug Done _fdebug " << _fdebug << " = thefdebug " << thefdebug
47 //           << endl ;
48     if ( theprof_debug ) {
49       _Orb = CORBA::ORB::_duplicate( ORB ) ;
50       _prof_debug = theprof_debug ;
51       _fdebug = thefdebug ;
52     }
53     else {
54       MESSAGE( "GraphBase::Base::SetDebug with theprof_debug == NULL" ) ;
55     }
56   }
57   else {
58     cdebug << "GraphBase::Base::SetDebug already done" << endl ;
59   }
60 //  cdebug_in << "GraphBase::Base::SetDebug" << endl ;
61 //  cdebug << "GraphBase::Base::SetDebug" << endl ;
62 //  cdebug_out << "GraphBase::Base::SetDebug" << endl ;
63 }
64
65 char * GraphBase::Base::ObjectToString( CORBA::Object_ptr obj ) const {
66   return _Orb->object_to_string( obj );
67 }
68
69 CORBA::Object_ptr GraphBase::Base::StringToObject( char * obj ) const {
70   return _Orb->string_to_object( obj );
71 }
72
73 string DataStreamTypeToString( const SALOME_ModuleCatalog::DataStreamType aDataStreamType ) {
74   string aIdlType ;
75   switch ( aDataStreamType ) {
76   case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN : {
77     aIdlType = "Unknown" ;
78     break;
79   }
80   case SALOME_ModuleCatalog::DATASTREAM_INTEGER : {
81     aIdlType = "int" ;
82     break;
83   }
84   case SALOME_ModuleCatalog::DATASTREAM_FLOAT : {
85     aIdlType = "float" ;
86     break;
87   }
88   case SALOME_ModuleCatalog::DATASTREAM_DOUBLE : {
89     aIdlType = "double" ;
90     break;
91   }
92   case SALOME_ModuleCatalog::DATASTREAM_STRING : {
93     aIdlType = "string" ;
94     break;
95   }
96   case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN : {
97     aIdlType = "bool" ;
98     break;
99   }
100   default: {
101     aIdlType = "Unknown" ;
102     break;
103   }
104   }
105   return aIdlType ;
106 }
107
108 SALOME_ModuleCatalog::DataStreamType StringToDataStreamType( const char * aIdlType ) {
109   SALOME_ModuleCatalog::DataStreamType aDataStreamType ;
110   if ( !strcmp( aIdlType ,  "Unknown" ) ) {
111     aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_UNKNOWN ;
112   }
113   else if ( !strcmp( aIdlType ,  "int" ) ) {
114     aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_INTEGER ;
115   }
116   else if ( !strcmp( aIdlType ,  "float" ) ) {
117     aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_FLOAT ;
118   }
119   else if ( !strcmp( aIdlType ,  "double" ) ) {
120     aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_DOUBLE ;
121   }
122   else if ( !strcmp( aIdlType ,  "string" ) ) {
123     aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_STRING ;
124   }
125   else if ( !strcmp( aIdlType ,  "bool" ) ) {
126     aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_BOOLEAN ;
127   }
128   else {
129     aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_UNKNOWN ;
130   }
131   return aDataStreamType ;
132 }
133
134 string KindOfDataStreamTraceToString( SUPERV::KindOfDataStreamTrace aDataStreamTrace ) {
135   string aTrace ;
136   switch ( aDataStreamTrace ) {
137   case SUPERV::WithoutTrace :
138     aTrace = "SANS";
139     break;
140   case SUPERV::SummaryTrace :
141     aTrace = "SUCCINT";
142     break;
143   case SUPERV::DetailedTrace :
144     aTrace = "DETAILLE";
145     break;
146   default :
147     aTrace = "UndefinedTrace";
148     break;
149   }
150   return aTrace ;
151 }
152
153 string DataStreamDependencyToString( const SALOME_ModuleCatalog::DataStreamDependency aDataStreamDependency ) {
154   string aDependency ;
155   switch ( aDataStreamDependency ) {
156   case SALOME_ModuleCatalog::DATASTREAM_UNDEFINED :
157     aDependency = "U" ;
158     break;
159   case SALOME_ModuleCatalog::DATASTREAM_TEMPORAL :
160     aDependency = "T" ;
161     break;
162   case SALOME_ModuleCatalog::DATASTREAM_ITERATIVE :
163     aDependency = "I" ;
164     break;
165   default :
166     aDependency = "?" ;
167     break;
168   }
169
170   return aDependency;
171 }
172
173 string DataStreamToString( const SALOME_ModuleCatalog::DataStreamType aDataStreamType ) {
174   string aStreamType ;
175   switch ( aDataStreamType ) {
176   case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN : {
177     aStreamType = "Unknown" ;
178     break;
179   }
180   case SALOME_ModuleCatalog::DATASTREAM_INTEGER : {
181     aStreamType = "ENTIER" ;
182     break;
183   }
184   case SALOME_ModuleCatalog::DATASTREAM_FLOAT : {
185     aStreamType = "REEL" ;
186     break;
187   }
188   case SALOME_ModuleCatalog::DATASTREAM_DOUBLE : {
189     aStreamType = "DOUBLE" ;
190     break;
191   }
192   case SALOME_ModuleCatalog::DATASTREAM_STRING : {
193     aStreamType = "CHAINE" ;
194     break;
195   }
196   case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN : {
197     aStreamType = "LOGIQUE" ;
198     break;
199   }
200   default: {
201     aStreamType = "?" ;
202     break;
203   }
204   }
205   return aStreamType ;
206 }
207
208 ostream & operator<< (ostream & f ,const SALOME_ModuleCatalog::DataStreamType & s ) {
209   switch (s) {
210   case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN :
211     f << "DATASTREAM_UNKNOWN";
212     break;
213   case SALOME_ModuleCatalog::DATASTREAM_INTEGER :
214     f << "DATASTREAM_INTEGER";
215     break;
216   case SALOME_ModuleCatalog::DATASTREAM_FLOAT :
217     f << "DATASTREAM_FLOAT";
218     break;
219   case SALOME_ModuleCatalog::DATASTREAM_DOUBLE :
220     f << "DATASTREAM_DOUBLE";
221     break;
222   case SALOME_ModuleCatalog::DATASTREAM_STRING :
223     f << "DATASTREAM_STRING";
224     break;
225   case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN :
226     f << "DATASTREAM_BOOLEAN";
227     break;
228   default :
229     f << "DATASTREAM_UNKNOWN";
230     break;
231   }
232
233   return f;
234 }
235