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" ;
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 ;
120 #if OMNIORB_VERSION >= 4
121 anAny >>= (CORBA::Any::to_object ) obj ;
125 if ( CORBA::is_nil( obj ) ) {
126 *_fdebug << "CORBA::Object_ptr " << obj << " nil reference (tk_object)"
130 *_fdebug << "CORBA::Object_ptr " << obj << "(tk_object)" << endl ;
134 retstr = ObjectToString( obj ) ;
135 *_fdebug << retstr << "(tk_object)" << endl ;
138 *_fdebug << "ObjectToString( CORBA::Object_ptr ) Catched ERROR" << endl ;
142 *_fdebug << "anAny >>= CORBA::Object_ptr ( tk_object ) Catched ERROR" << endl ;
147 *_fdebug << " " << "(other ERROR)" << endl ;
153 string DataStreamTypeToString( const SALOME_ModuleCatalog::DataStreamType aDataStreamType ) {
155 switch ( aDataStreamType ) {
156 case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN : {
157 aIdlType = "Unknown" ;
160 case SALOME_ModuleCatalog::DATASTREAM_INTEGER : {
164 case SALOME_ModuleCatalog::DATASTREAM_FLOAT : {
168 case SALOME_ModuleCatalog::DATASTREAM_DOUBLE : {
169 aIdlType = "double" ;
172 case SALOME_ModuleCatalog::DATASTREAM_STRING : {
173 aIdlType = "string" ;
176 case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN : {
181 aIdlType = "Unknown" ;
188 SALOME_ModuleCatalog::DataStreamType StringToDataStreamType( const char * aIdlType ) {
189 SALOME_ModuleCatalog::DataStreamType aDataStreamType ;
190 if ( !strcmp( aIdlType , "Unknown" ) ) {
191 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_UNKNOWN ;
193 else if ( !strcmp( aIdlType , "int" ) ) {
194 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_INTEGER ;
196 else if ( !strcmp( aIdlType , "float" ) ) {
197 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_FLOAT ;
199 else if ( !strcmp( aIdlType , "double" ) ) {
200 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_DOUBLE ;
202 else if ( !strcmp( aIdlType , "string" ) ) {
203 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_STRING ;
205 else if ( !strcmp( aIdlType , "bool" ) ) {
206 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_BOOLEAN ;
209 aDataStreamType = SALOME_ModuleCatalog::DATASTREAM_UNKNOWN ;
211 return aDataStreamType ;
214 string KindOfDataStreamTraceToString( SUPERV::KindOfDataStreamTrace aDataStreamTrace ) {
216 switch ( aDataStreamTrace ) {
217 case SUPERV::WithoutTrace :
220 case SUPERV::SummaryTrace :
223 case SUPERV::DetailedTrace :
227 aTrace = "UndefinedTrace";
233 string DataStreamDependencyToString( const SALOME_ModuleCatalog::DataStreamDependency aDataStreamDependency ) {
235 switch ( aDataStreamDependency ) {
236 case SALOME_ModuleCatalog::DATASTREAM_UNDEFINED :
239 case SALOME_ModuleCatalog::DATASTREAM_TEMPORAL :
242 case SALOME_ModuleCatalog::DATASTREAM_ITERATIVE :
253 string DataStreamToString( const SALOME_ModuleCatalog::DataStreamType aDataStreamType ) {
255 switch ( aDataStreamType ) {
256 case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN : {
257 aStreamType = "Unknown" ;
260 case SALOME_ModuleCatalog::DATASTREAM_INTEGER : {
261 aStreamType = "ENTIER" ;
264 case SALOME_ModuleCatalog::DATASTREAM_FLOAT : {
265 aStreamType = "REEL" ;
268 case SALOME_ModuleCatalog::DATASTREAM_DOUBLE : {
269 aStreamType = "DOUBLE" ;
272 case SALOME_ModuleCatalog::DATASTREAM_STRING : {
273 aStreamType = "CHAINE" ;
276 case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN : {
277 aStreamType = "LOGIQUE" ;
288 ostream & operator<< (ostream & f ,const SALOME_ModuleCatalog::DataStreamType & s ) {
290 case SALOME_ModuleCatalog::DATASTREAM_UNKNOWN :
291 f << "DATASTREAM_UNKNOWN";
293 case SALOME_ModuleCatalog::DATASTREAM_INTEGER :
294 f << "DATASTREAM_INTEGER";
296 case SALOME_ModuleCatalog::DATASTREAM_FLOAT :
297 f << "DATASTREAM_FLOAT";
299 case SALOME_ModuleCatalog::DATASTREAM_DOUBLE :
300 f << "DATASTREAM_DOUBLE";
302 case SALOME_ModuleCatalog::DATASTREAM_STRING :
303 f << "DATASTREAM_STRING";
305 case SALOME_ModuleCatalog::DATASTREAM_BOOLEAN :
306 f << "DATASTREAM_BOOLEAN";
309 f << "DATASTREAM_UNKNOWN";