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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
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" ;
38 GraphBase::Base::Base() {
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
48 if ( theprof_debug ) {
49 _Orb = CORBA::ORB::_duplicate( ORB ) ;
50 _prof_debug = theprof_debug ;
54 MESSAGE( "GraphBase::Base::SetDebug with theprof_debug == NULL" ) ;
58 cdebug << "GraphBase::Base::SetDebug already done" << endl ;
60 // cdebug_in << "GraphBase::Base::SetDebug" << endl ;
61 // cdebug << "GraphBase::Base::SetDebug" << endl ;
62 // cdebug_out << "GraphBase::Base::SetDebug" << endl ;
65 char * GraphBase::Base::ObjectToString( CORBA::Object_ptr obj ) const {
66 return _Orb->object_to_string( obj );
69 CORBA::Object_ptr GraphBase::Base::StringToObject( char * obj ) const {
70 return _Orb->string_to_object( obj );
73 ostream & GraphBase::Base::AnyValue( const CORBA::Any & anAny ) {
74 switch (anAny.type()->kind()) {
75 case CORBA::tk_string: {
78 *_fdebug << " " << t << " (tk_string)" << endl ;
81 case CORBA::tk_boolean: {
83 anAny >>= (CORBA::Any::to_boolean ) b;
84 *_fdebug << " " << b << " (tk_boolean)" << endl ;
87 case CORBA::tk_char: {
89 anAny >>= (CORBA::Any::to_char ) c;
90 *_fdebug << " " << c << "(tk_char)" << endl ;
93 case CORBA::tk_short: {
96 *_fdebug << " " << s << "(tk_short)" << endl ;
99 case CORBA::tk_long: {
102 *_fdebug << " " << l << "(tk_long)" << endl ;
105 case CORBA::tk_float: {
108 *_fdebug << " " << f << "(tk_float)" << endl ;
111 case CORBA::tk_double: {
114 *_fdebug << " " << d << "(tk_double)" << endl ;
117 case CORBA::tk_objref: {
119 CORBA::Object_ptr obj ;
121 if ( CORBA::is_nil( obj ) ) {
122 *_fdebug << "CORBA::Object_ptr " << obj << " nil reference (tk_object)"
126 *_fdebug << "CORBA::Object_ptr " << obj << "(tk_object)" << endl ;
130 retstr = ObjectToString( obj ) ;
131 *_fdebug << retstr << "(tk_object)" << endl ;
134 *_fdebug << "ObjectToString( CORBA::Object_ptr ) Catched ERROR" << endl ;
138 *_fdebug << "anAny >>= CORBA::Object_ptr ( tk_object ) Catched ERROR" << endl ;
143 *_fdebug << " " << "(other ERROR)" << endl ;
149 string DataStreamTypeToString( const SALOME_ModuleCatalog::DataStreamType aDataStreamType ) {
151 switch ( aDataStreamType ) {
152 case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN : {
153 aIdlType = "Unknown" ;
156 case SALOME_ModuleCatalog::DATASTREAM_INTEGER : {
160 case SALOME_ModuleCatalog::DATASTREAM_FLOAT : {
164 case SALOME_ModuleCatalog::DATASTREAM_DOUBLE : {
165 aIdlType = "double" ;
168 case SALOME_ModuleCatalog::DATASTREAM_STRING : {
169 aIdlType = "string" ;
172 case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN : {
177 aIdlType = "Unknown" ;
184 SALOME_ModuleCatalog::DataStreamType StringToDataStreamType( const char * aIdlType ) {
185 SALOME_ModuleCatalog::DataStreamType aDataStreamType ;
186 if ( !strcmp( aIdlType , "Unknown" ) ) {
187 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_UNKNOWN ;
189 else if ( !strcmp( aIdlType , "int" ) ) {
190 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_INTEGER ;
192 else if ( !strcmp( aIdlType , "float" ) ) {
193 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_FLOAT ;
195 else if ( !strcmp( aIdlType , "double" ) ) {
196 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_DOUBLE ;
198 else if ( !strcmp( aIdlType , "string" ) ) {
199 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_STRING ;
201 else if ( !strcmp( aIdlType , "bool" ) ) {
202 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_BOOLEAN ;
205 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_UNKNOWN ;
207 return aDataStreamType ;
210 string KindOfDataStreamTraceToString( SUPERV::KindOfDataStreamTrace aDataStreamTrace ) {
212 switch ( aDataStreamTrace ) {
213 case SUPERV::WithoutTrace :
216 case SUPERV::SummaryTrace :
219 case SUPERV::DetailedTrace :
223 aTrace = "UndefinedTrace";
229 string DataStreamDependencyToString( const SALOME_ModuleCatalog::DataStreamDependency aDataStreamDependency ) {
231 switch ( aDataStreamDependency ) {
232 case SALOME_ModuleCatalog::DATASTREAM_UNDEFINED :
235 case SALOME_ModuleCatalog::DATASTREAM_TEMPORAL :
238 case SALOME_ModuleCatalog::DATASTREAM_ITERATIVE :
249 string DataStreamToString( const SALOME_ModuleCatalog::DataStreamType aDataStreamType ) {
251 switch ( aDataStreamType ) {
252 case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN : {
253 aStreamType = "Unknown" ;
256 case SALOME_ModuleCatalog::DATASTREAM_INTEGER : {
257 aStreamType = "ENTIER" ;
260 case SALOME_ModuleCatalog::DATASTREAM_FLOAT : {
261 aStreamType = "REEL" ;
264 case SALOME_ModuleCatalog::DATASTREAM_DOUBLE : {
265 aStreamType = "DOUBLE" ;
268 case SALOME_ModuleCatalog::DATASTREAM_STRING : {
269 aStreamType = "CHAINE" ;
272 case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN : {
273 aStreamType = "LOGIQUE" ;
284 ostream & operator<< (ostream & f ,const SALOME_ModuleCatalog::DataStreamType & s ) {
286 case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN :
287 f << "DATASTREAM_UNKNOWN";
289 case SALOME_ModuleCatalog::DATASTREAM_INTEGER :
290 f << "DATASTREAM_INTEGER";
292 case SALOME_ModuleCatalog::DATASTREAM_FLOAT :
293 f << "DATASTREAM_FLOAT";
295 case SALOME_ModuleCatalog::DATASTREAM_DOUBLE :
296 f << "DATASTREAM_DOUBLE";
298 case SALOME_ModuleCatalog::DATASTREAM_STRING :
299 f << "DATASTREAM_STRING";
301 case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN :
302 f << "DATASTREAM_BOOLEAN";
305 f << "DATASTREAM_UNKNOWN";