X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSyrComponent%2FSyrComponent_Impl.cxx;h=aabc76d97c96ee9ac2cc6ebd81e6199a5df078ff;hb=78dfeb248d771fe550c1320b1565f852daff9af2;hp=eefa47bc5325dab8bed0d5577500c54a54272ae9;hpb=c599ae6a6f28dbab7e4e7d131419eddf30e23b0a;p=samples%2Fcomponent.git diff --git a/src/SyrComponent/SyrComponent_Impl.cxx b/src/SyrComponent/SyrComponent_Impl.cxx old mode 100755 new mode 100644 index eefa47b..aabc76d --- a/src/SyrComponent/SyrComponent_Impl.cxx +++ b/src/SyrComponent/SyrComponent_Impl.cxx @@ -1,38 +1,41 @@ -// SuperVisionTest SyrComponent : example of component performing some mathinatical operations +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// 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. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + +// SuperVisionTest SyrComponent : example of component performing some mathinatical operations // File : SyrComponent_Impl.cxx // Author : Jean Rahuel, CEA // Module : SuperVisionTest - +// #include +#ifndef WIN32 #include +#else +#include +#endif #include #include #include -//#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" );