Salome HOME
Updated copyright comment
[samples/component.git] / src / SyrComponent / SyrComponent_Impl.cxx
old mode 100755 (executable)
new mode 100644 (file)
index 12f36e4..aabc76d
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 //  Module : SuperVisionTest
 //
 #include <stdio.h>
+#ifndef WIN32
 #include <unistd.h>
+#else
+#include <process.h>
+#endif
 #include <fstream>
 #include <sstream>
 #include <string>
 
-//#include "utilities.h"
-
+#include "COMPONENT_version.h"
 #include "SyrComponent_Impl.hxx"
 #include "Adder_Impl.hxx"
 
@@ -43,11 +46,11 @@ SyrComponent_Impl::SyrComponent_Impl( CORBA::ORB_ptr orb ,
                                      PortableServer::ObjectId * contId , 
                                      const char *instanceName ,
                                       const char *interfaceName ,
-                                      const bool kactivate ) :
-  Engines_Component_i(orb, poa, contId, instanceName, interfaceName,1,true) {
+                                      const bool kactivate , bool withRegistry ) :
+  Engines_Component_i(orb, poa, contId, instanceName, interfaceName,true/*notif is true here for message*/,withRegistry) {
   MESSAGE("SyrComponent_Impl::SyrComponent_Impl this " << hex << this << dec
           << "activate object instanceName("
-          << instanceName << ") interfaceName(" << interfaceName << ")" )
+          << instanceName << ") interfaceName(" << interfaceName << ")" );
   if ( kactivate ) {
     _thisObj = this ;
     _id = _poa->activate_object(_thisObj);
@@ -60,15 +63,28 @@ SyrComponent_Impl::SyrComponent_Impl() {
 SyrComponent_Impl::~SyrComponent_Impl() {
 }
 
+char* SyrComponent_Impl::getVersion()
+{
+#if COMPONENT_DEVELOPMENT
+  return CORBA::string_dup(COMPONENT_VERSION_STR"dev");
+#else
+  return CORBA::string_dup(COMPONENT_VERSION_STR);
+#endif
+}
+
 CORBA::Long SyrComponent_Impl::C_ISEVEN( CORBA::Long anInteger ) {
   bool RetVal ;
   beginService( " SyrComponent_Impl::C_ISEVEN" );
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::C_ISEVEN is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   RetVal = ( anInteger & 1 ) == 0 ;
   endService( " SyrComponent_Impl::C_ISEVEN"  );
   return RetVal ;
@@ -80,9 +96,13 @@ CORBA::Long SyrComponent_Impl::C_ISONE( CORBA::Long anOddInteger ) {
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::C_ISONE is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   RetVal = ( anOddInteger == 1 ) ;
   endService( " SyrComponent_Impl::C_ISONE"  );
   return RetVal ;
@@ -93,10 +113,13 @@ CORBA::Long SyrComponent_Impl::C_M3( CORBA::Long anOddInteger ) {
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::C_M3 is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
-  endService( " SyrComponent_Impl::C_M3"  );
+#else
+  Sleep(S*1000);
+#endif  endService( " SyrComponent_Impl::C_M3"  );
   if ( C_ISEVEN( anOddInteger ) )
     return 0 ;
   return ( 3*anOddInteger ) ;
@@ -107,9 +130,13 @@ CORBA::Long SyrComponent_Impl::C_M3P1( CORBA::Long anOddInteger ) {
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::C_M3P1 is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   endService( " SyrComponent_Impl::C_M3P1"  );
   if ( C_ISEVEN( anOddInteger ) )
     return 0 ;
@@ -121,9 +148,13 @@ CORBA::Long SyrComponent_Impl::C_DIV2( CORBA::Long anEvenInteger ) {
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::C_DIV2 is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   endService( " SyrComponent_Impl::C_DIV2"  );
   if ( !C_ISEVEN( anEvenInteger ) )
     return 0 ;
@@ -135,9 +166,13 @@ CORBA::Long SyrComponent_Impl::C_INCR( CORBA::Long aCount ) {
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::C_INCR is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   endService( " SyrComponent_Impl::C_INCR"  );
   return ( aCount + 1 ) ;
 }
@@ -147,9 +182,13 @@ void SyrComponent_Impl::CPP_SETLONG( CORBA::Long aCount ) {
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::CPP_SETLONG is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   _Count = aCount ;
   endService( " SyrComponent_Impl::CPP_SETLONG"  );
   return ;
@@ -160,9 +199,13 @@ CORBA::Long SyrComponent_Impl::CPP_ADDTOLONG( CORBA::Long anIncr ) {
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::CPP_ADDTOLONG is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   endService( " SyrComponent_Impl::CPP_ADDTOLONG"  );
   return ( _Count + anIncr ) ;
 }
@@ -172,9 +215,13 @@ CORBA::Long SyrComponent_Impl::C_MIN( CORBA::Long aMinVal , CORBA::Long anIntege
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::C_MIN is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   int min = aMinVal ;
   if ( anInteger < min || aMinVal == 0 ) {
     min = anInteger ;
@@ -193,9 +240,13 @@ CORBA::Long SyrComponent_Impl::C_MAX( CORBA::Long aMaxVal , CORBA::Long anIntege
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::C_MAX is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   int max = aMaxVal ;
   if ( anInteger > max ) {
     max = anInteger ;
@@ -214,12 +265,27 @@ SuperVisionTest::ListOfSyr_ptr SyrComponent_Impl::C_LISTOFSYR() {
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::C_LISTOFSYR is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
-  ListOfSyr_Impl * aNewListOfSyr = new ListOfSyr_Impl( _orb , _poa, _contId,
+#else
+  Sleep(S*1000);
+#endif
+  ListOfSyr_Impl * aNewListOfSyr = nullptr;
+  Engines::Container_var cont = this->GetContainerRef();
+  if( cont->is_SSL_mode() )
+  {
+    aNewListOfSyr = new ListOfSyr_Impl_SSL( _orb , _poa, _contId,
                         instanceName() , interfaceName() ,
                         graphName() , nodeName() ) ;
+  }
+  else
+  {
+    aNewListOfSyr = new ListOfSyr_Impl_No_SSL( _orb , _poa, _contId,
+                        instanceName() , interfaceName() ,
+                        graphName() , nodeName() ) ;
+  }
   SuperVisionTest::ListOfSyr_var iobject = (SuperVisionTest::ListOfSyr_var ) NULL ;
   PortableServer::ObjectId * id = aNewListOfSyr->getId() ;
   CORBA::Object_var obj = _poa->id_to_reference(*id);
@@ -238,9 +304,13 @@ SuperVisionTest::ListOfSyr_ptr SyrComponent_Impl::C_AVERAGE(
   sendMessage(NOTIF_STEP, "SyrComponent_Impl::C_AVERAGE is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   SuperVisionTest::SeqOfSyr * aSeqOfSyr = aListOfSyr->GetSeqOfSyr() ;
   int len = aSeqOfSyr->length() ;
   aSeqOfSyr->length( len + 1 ) ;
@@ -265,13 +335,26 @@ SuperVisionTest::Syr_ptr SyrComponent_Impl::Init( CORBA::Long anOddInteger ) {
   sendMessage(NOTIF_STEP, "SyrComponent_Impl creates Syr_Impl");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
-  Syr_Impl * mySyr ;
-  mySyr = new Syr_Impl( _orb , _poa, _contId,
+#else
+  Sleep(S*1000);
+#endif
+  Syr_Impl * mySyr = nullptr;
+  if ( this->isSSLMode() )
+  {
+    mySyr = new Syr_Impl_SSL( _orb , _poa, _contId,
+                        instanceName() , interfaceName() ,
+                        graphName() , nodeName() , anOddInteger ) ;
+  }
+  else
+  {
+    mySyr = new Syr_Impl_No_SSL( _orb , _poa, _contId,
                         instanceName() , interfaceName() ,
                         graphName() , nodeName() , anOddInteger ) ;
+  }
   SuperVisionTest::Syr_var iobject = (SuperVisionTest::Syr_var ) NULL ;
   PortableServer::ObjectId * id = mySyr->getId() ;
   CORBA::Object_var obj = _poa->id_to_reference(*id);
@@ -286,12 +369,12 @@ ListOfSyr_Impl::ListOfSyr_Impl( CORBA::ORB_ptr orb ,
                    const char * instanceName ,
                     const char * interfaceName , 
                    const char * graphName ,
-                    const char * nodeName ) :
-  Engines_Component_i(orb, poa, contId, instanceName, interfaceName,1,true) {
+                    const char * nodeName, bool withRegistry) :
+  Engines_Component_i(orb, poa, contId, instanceName, interfaceName,1,withRegistry) {
   Names( graphName , nodeName ) ;
   MESSAGE("ListOfSyr_Impl::ListOfSyr_Impl activate object instanceName("
           << instanceName << ") interfaceName(" << interfaceName << ") --> "
-          << hex << (void *) this << dec )
+          << hex << (void *) this << dec );
   beginService( "ListOfSyr_Impl::ListOfSyr_Impl" );
   _thisObj = this ;
   _id = _poa->activate_object(_thisObj);
@@ -307,6 +390,15 @@ ListOfSyr_Impl::~ListOfSyr_Impl() {
   endService( "ListOfSyr_Impl::~ListOfSyr_Impl" );
 }
 
+char* ListOfSyr_Impl::getVersion()
+{
+#if COMPONENT_DEVELOPMENT
+  return CORBA::string_dup(COMPONENT_VERSION_STR"dev");
+#else
+  return CORBA::string_dup(COMPONENT_VERSION_STR);
+#endif
+}
+
 SuperVisionTest::SeqOfSyr * ListOfSyr_Impl::GetSeqOfSyr() {
   SuperVisionTest::SeqOfSyr_var aSeqOfSyr = new SuperVisionTest::SeqOfSyr( _SeqOfSyr ) ;
   return ( aSeqOfSyr._retn() ) ;
@@ -326,10 +418,24 @@ extern "C"
       const char *instanceName,
       const char *interfaceName)
   {
+#ifndef WIN32
     MESSAGE("SyrComponentEngine_factory SyrComponentEngine ("
             << instanceName << "," << interfaceName << "," << getpid() << ")");
-    SyrComponent_Impl * mySyrComponent 
-      = new SyrComponent_Impl(orb, poa, contId, instanceName, interfaceName);
+#else
+    MESSAGE("SyrComponentEngine_factory SyrComponentEngine ("
+            << instanceName << "," << interfaceName << "," << _getpid() << ")");
+#endif
+    SyrComponent_Impl * mySyrComponent = nullptr;
+    CORBA::Object_var o = poa->id_to_reference(*contId);
+    Engines::Container_var cont = Engines::Container::_narrow(o);
+    if(cont->is_SSL_mode())
+    {
+      mySyrComponent = new SyrComponent_Impl_SSL(orb, poa, contId, instanceName, interfaceName);
+    }
+    else
+    {
+      mySyrComponent = new SyrComponent_Impl_No_SSL(orb, poa, contId, instanceName, interfaceName);
+    }
     return mySyrComponent->getId() ;
   }
 }
@@ -341,12 +447,12 @@ Syr_Impl::Syr_Impl( CORBA::ORB_ptr orb ,
                     const char * interfaceName , 
                    const char * graphName ,
                     const char * nodeName ,
-                    const CORBA::Long anOddInteger ) :
-  SyrComponent_Impl(orb, poa, contId, instanceName, interfaceName,false) {
+                    const CORBA::Long anOddInteger, bool withRegistry) :
+  SyrComponent_Impl(orb, poa, contId, instanceName, interfaceName,false,withRegistry) {
   Names( graphName , nodeName ) ;
   MESSAGE("Syr_Impl::Syr_Impl activate object instanceName("
           << instanceName << ") interfaceName(" << interfaceName << ") --> "
-          << hex << (void *) this << dec )
+          << hex << (void *) this << dec );
   beginService( "Syr_Impl::Syr_Impl" );
   _thisObj = this ;
   _id = _poa->activate_object(_thisObj);
@@ -370,9 +476,13 @@ CORBA::Long Syr_Impl::Initial() {
   sendMessage(NOTIF_STEP, "Syr_Impl::Initial is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   endService( " Syr_Impl::Initial"  );
   return _InitialInteger ;
 }
@@ -382,9 +492,13 @@ CORBA::Long Syr_Impl::Current() {
   sendMessage(NOTIF_STEP, "Syr_Impl::Current is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   endService( " Syr_Impl::Current"  );
   return _CurrentInteger ;
 }
@@ -395,9 +509,13 @@ CORBA::Long Syr_Impl::IsEven() {
   sendMessage(NOTIF_STEP, "Syr_Impl::IsEven is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   RetVal = ( _CurrentInteger & 1 ) == 0 ;
   MESSAGE( " Syr_Impl::IsEven " << _CurrentInteger << " " << RetVal );
   endService( " Syr_Impl::IsEven"  );
@@ -410,9 +528,13 @@ CORBA::Long Syr_Impl::IsOne() {
   sendMessage(NOTIF_STEP, "Syr_Impl::IsOne is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   RetVal = ( _CurrentInteger == 1 ) ;
   MESSAGE( " Syr_Impl::IsOne " << _CurrentInteger << " " << RetVal );
   endService( " Syr_Impl::IsOne"  );
@@ -424,9 +546,13 @@ CORBA::Long Syr_Impl::Count() {
   sendMessage(NOTIF_STEP, "Syr_Impl::Count is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   MESSAGE( " Syr_Impl::Count " << _Count );
   endService( " Syr_Impl::Count"  );
   return _Count ;
@@ -437,9 +563,13 @@ void Syr_Impl::M3p1() {
   sendMessage(NOTIF_STEP, "Syr_Impl::M3p1 is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   if ( IsEven() )
     _CurrentInteger = 0 ;
   else
@@ -453,9 +583,13 @@ void Syr_Impl::Div2() {
   sendMessage(NOTIF_STEP, "Syr_Impl::Div2 is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   if ( !IsEven() )
     _CurrentInteger = 0 ;
   else
@@ -469,9 +603,13 @@ void Syr_Impl::Incr() {
   sendMessage(NOTIF_STEP, "Syr_Impl::Incr is Computing");
 //  int S = 1+(int) (2.0*rand()/(RAND_MAX+1.0));
   int S = 1 ;
+#ifndef WIN32
   while ( S ) {
-    S = sleep(S);
+    S = sleep( S ) ;
   }
+#else
+  Sleep(S*1000);
+#endif
   _Count = _Count + 1 ;
   MESSAGE( " Syr_Impl::Incr " << _Count );
   endService( " Syr_Impl::Incr"  );