1 // SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
24 // File : DataFlowBase_Base.cxx
25 // Author : Jean Rahuel, CEA
30 #include "DataFlowBase_Base.hxx"
32 char *SuperVision_Version = "3.0" ;
34 char *NULLSTRING = "" ;
36 char *FACTORYSERVER = "localhost/FactoryServer" ;
37 char *FACTORYSERVERPY = "localhost/FactoryServerPy" ;
39 GraphBase::Base::Base() {
44 void GraphBase::Base::SetDebug( CORBA::ORB_ptr ORB ,
45 int * theprof_debug , ofstream * thefdebug ) {
46 if ( _prof_debug == NULL ) {
47 // *thefdebug << "GraphBase::Base::SetDebug Done _fdebug " << _fdebug << " = thefdebug " << thefdebug
49 if ( theprof_debug ) {
50 _Orb = CORBA::ORB::_duplicate( ORB ) ;
51 _prof_debug = theprof_debug ;
55 MESSAGE( "GraphBase::Base::SetDebug with theprof_debug == NULL" ) ;
59 cdebug << "GraphBase::Base::SetDebug already done" << endl ;
61 // cdebug_in << "GraphBase::Base::SetDebug" << endl ;
62 // cdebug << "GraphBase::Base::SetDebug" << endl ;
63 // cdebug_out << "GraphBase::Base::SetDebug" << endl ;
66 char * GraphBase::Base::ObjectToString( CORBA::Object_ptr obj ) const {
67 return _Orb->object_to_string( obj );
70 CORBA::Object_ptr GraphBase::Base::StringToObject( const char * obj ) const {
71 return _Orb->string_to_object( obj );
74 ostream & GraphBase::Base::AnyValue( const CORBA::Any & anAny ) {
75 switch (anAny.type()->kind()) {
76 case CORBA::tk_string: {
79 *_fdebug << " " << t << " (tk_string)" << endl ;
82 case CORBA::tk_boolean: {
84 anAny >>= (CORBA::Any::to_boolean ) b;
85 *_fdebug << " " << b << " (tk_boolean)" << endl ;
88 case CORBA::tk_char: {
90 anAny >>= (CORBA::Any::to_char ) c;
91 *_fdebug << " " << c << "(tk_char)" << endl ;
94 case CORBA::tk_short: {
97 *_fdebug << " " << s << "(tk_short)" << endl ;
100 case CORBA::tk_long: {
103 *_fdebug << " " << l << "(tk_long)" << endl ;
106 case CORBA::tk_float: {
109 *_fdebug << " " << f << "(tk_float)" << endl ;
112 case CORBA::tk_double: {
115 *_fdebug << " " << d << "(tk_double)" << endl ;
118 case CORBA::tk_objref: {
120 CORBA::Object_ptr obj ;
121 #if OMNIORB_VERSION >= 4
122 anAny >>= (CORBA::Any::to_object ) obj ;
126 if ( CORBA::is_nil( obj ) ) {
127 *_fdebug << "CORBA::Object_ptr " << obj << " nil reference (tk_object)"
131 *_fdebug << "CORBA::Object_ptr " << obj << "(tk_object)" << endl ;
135 retstr = ObjectToString( obj ) ;
136 *_fdebug << retstr << "(tk_object)" << endl ;
139 *_fdebug << "ObjectToString( CORBA::Object_ptr ) Catched ERROR" << endl ;
143 *_fdebug << "anAny >>= CORBA::Object_ptr ( tk_object ) Catched ERROR" << endl ;
148 *_fdebug << " " << "(other ERROR)" << endl ;
155 string DataStreamTypeToString( const SALOME_ModuleCatalog::DataStreamType aDataStreamType ) {
157 switch ( aDataStreamType ) {
158 case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN : {
159 aIdlType = "Unknown" ;
162 case SALOME_ModuleCatalog::DATASTREAM_INTEGER : {
166 case SALOME_ModuleCatalog::DATASTREAM_FLOAT : {
170 case SALOME_ModuleCatalog::DATASTREAM_DOUBLE : {
171 aIdlType = "double" ;
174 case SALOME_ModuleCatalog::DATASTREAM_STRING : {
175 aIdlType = "string" ;
178 case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN : {
183 aIdlType = "Unknown" ;
190 SALOME_ModuleCatalog::DataStreamType StringToDataStreamType( const char * aIdlType ) {
191 SALOME_ModuleCatalog::DataStreamType aDataStreamType ;
192 if ( !strcmp( aIdlType , "Unknown" ) ) {
193 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_UNKNOWN ;
195 else if ( !strcmp( aIdlType , "int" ) ) {
196 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_INTEGER ;
198 else if ( !strcmp( aIdlType , "float" ) ) {
199 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_FLOAT ;
201 else if ( !strcmp( aIdlType , "double" ) ) {
202 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_DOUBLE ;
204 else if ( !strcmp( aIdlType , "string" ) ) {
205 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_STRING ;
207 else if ( !strcmp( aIdlType , "bool" ) ) {
208 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_BOOLEAN ;
211 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_UNKNOWN ;
213 return aDataStreamType ;
216 int StringToDataStreamType (const char * aIdlType)
219 if (!strcmp(aIdlType, "Unknown")) aDataStreamType = 0; //SALOME_ModuleCatalog::DATASTREAM_UNKNOWN
220 else if (!strcmp(aIdlType, "int")) aDataStreamType = 1; //SALOME_ModuleCatalog::DATASTREAM_INTEGER
221 else if (!strcmp(aIdlType, "float")) aDataStreamType = 2; //SALOME_ModuleCatalog::DATASTREAM_FLOAT
222 else if (!strcmp(aIdlType, "double")) aDataStreamType = 3; //SALOME_ModuleCatalog::DATASTREAM_DOUBLE
223 else if (!strcmp(aIdlType, "string")) aDataStreamType = 4; //SALOME_ModuleCatalog::DATASTREAM_STRING
224 else if (!strcmp(aIdlType, "bool")) aDataStreamType = 5; //SALOME_ModuleCatalog::DATASTREAM_BOOLEAN
225 else aDataStreamType = 0; //SALOME_ModuleCatalog::DATASTREAM_UNKNOWN
226 return aDataStreamType;
229 string KindOfDataStreamTraceToString( SUPERV::KindOfDataStreamTrace aDataStreamTrace ) {
231 switch ( aDataStreamTrace ) {
232 case SUPERV::WithoutTrace :
235 case SUPERV::SummaryTrace :
238 case SUPERV::DetailedTrace :
242 aTrace = "UndefinedTrace";
248 string DataStreamDependencyToString( const SALOME_ModuleCatalog::DataStreamDependency aDataStreamDependency ) {
250 switch ( aDataStreamDependency ) {
251 case SALOME_ModuleCatalog::DATASTREAM_UNDEFINED :
254 case SALOME_ModuleCatalog::DATASTREAM_TEMPORAL :
257 case SALOME_ModuleCatalog::DATASTREAM_ITERATIVE :
268 string DataStreamToString (const char* aDataStreamType)
271 string type (aDataStreamType);
273 if (type == "Unknown") aStreamType = "Unknown";
274 else if (type == "int") aStreamType = "ENTIER";
275 else if (type == "float") aStreamType = "REEL";
276 else if (type == "double") aStreamType = "DOUBLE";
277 else if (type == "string") aStreamType = "CHAINE";
278 else if (type == "bool") aStreamType = "LOGIQUE";
279 else aStreamType = "?";
285 string DataStreamToString( const char* aDataStreamType ) {
287 switch ( aDataStreamType ) {
288 case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN : {
289 aStreamType = "Unknown" ;
292 case SALOME_ModuleCatalog::DATASTREAM_INTEGER : {
293 aStreamType = "ENTIER" ;
296 case SALOME_ModuleCatalog::DATASTREAM_FLOAT : {
297 aStreamType = "REEL" ;
300 case SALOME_ModuleCatalog::DATASTREAM_DOUBLE : {
301 aStreamType = "DOUBLE" ;
304 case SALOME_ModuleCatalog::DATASTREAM_STRING : {
305 aStreamType = "CHAINE" ;
308 case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN : {
309 aStreamType = "LOGIQUE" ;
320 ostream & operator<< (ostream & f ,const SALOME_ModuleCatalog::DataStreamType & s ) {
322 case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN :
323 f << "DATASTREAM_UNKNOWN";
325 case SALOME_ModuleCatalog::DATASTREAM_INTEGER :
326 f << "DATASTREAM_INTEGER";
328 case SALOME_ModuleCatalog::DATASTREAM_FLOAT :
329 f << "DATASTREAM_FLOAT";
331 case SALOME_ModuleCatalog::DATASTREAM_DOUBLE :
332 f << "DATASTREAM_DOUBLE";
334 case SALOME_ModuleCatalog::DATASTREAM_STRING :
335 f << "DATASTREAM_STRING";
337 case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN :
338 f << "DATASTREAM_BOOLEAN";
341 f << "DATASTREAM_UNKNOWN";