X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FAdditionComponent%2FAdditionComponent_Impl.cxx;h=a9b602aaf0bc279b00d5cb9daa111e74528e5f7d;hb=f2128fb2b3eba950c9f773945cffd09e4b69592b;hp=3c992f3c03315f1aba6d41b3be65165480deb237;hpb=f16746243f713d62e90d43138448690ae38edfd1;p=samples%2Fcomponent.git diff --git a/src/AdditionComponent/AdditionComponent_Impl.cxx b/src/AdditionComponent/AdditionComponent_Impl.cxx old mode 100755 new mode 100644 index 3c992f3..a9b602a --- a/src/AdditionComponent/AdditionComponent_Impl.cxx +++ b/src/AdditionComponent/AdditionComponent_Impl.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2023 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -36,13 +36,13 @@ #include #include "utilities.h" -#include "Utils_ORB_INIT.hxx" -#include "Utils_SINGLETON.hxx" +#include "OpUtil.hxx" #include "SALOME_NamingService.hxx" #include "SALOME_LifeCycleCORBA.hxx" +#include "SALOME_Container_i.hxx" #include "AdditionComponent_Impl.hxx" -#include "Adder_Impl.hxx" +#include "Addition_Adder_Impl.hxx" #include "COMPONENT_version.h" using namespace std; @@ -51,11 +51,11 @@ AdditionInterface_Impl::AdditionInterface_Impl( CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, - const char *interfaceName) : - Engines_Component_i(orb, poa, contId, instanceName, interfaceName,1,true) { + const char *interfaceName, bool withRegistry) : + Engines_Component_i(orb, poa, contId, instanceName, interfaceName,1,withRegistry) { MESSAGE("AdditionInterface_Impl::AdditionInterface_Impl this " << hex << this << dec << "activate object instanceName(" - << instanceName << ") interfaceName(" << interfaceName << ")" ) + << instanceName << ") interfaceName(" << interfaceName << ")" ); _thisObj = this ; _id = _poa->activate_object(_thisObj); LastAddition = 0 ; @@ -92,7 +92,7 @@ CORBA::Double AdditionInterface_Impl::Add( CORBA::Double x , CORBA::Double y , C #else Sleep(S*1000); #endif - MESSAGE( "AdditionInterface_Impl::Add( " << x << " , " << y << " , " << z << " ) returns " << (x - y) << " after " << S << " seconds" ) + MESSAGE( "AdditionInterface_Impl::Add( " << x << " , " << y << " , " << z << " ) returns " << (x - y) << " after " << S << " seconds" ); LastAddition = z ; endService( " AdditionInterface_Impl::Add" ); return (x - y) ; @@ -183,9 +183,7 @@ AdditionComponent::Adder_ptr AdditionInterface_Impl::Addition() { beginService( "AdditionInterface_Impl::Addition" ); sendMessage(NOTIF_STEP, "AdditionInterface_Impl creates Adder_Impl"); Adder_Impl * myAdder ; - myAdder = new Adder_Impl( _orb , _poa, _contId, - instanceName() , interfaceName() , - graphName() , nodeName() ) ; + myAdder = this->BuildNewAdderImplObj() ; AdditionComponent::Adder_var iobject ; PortableServer::ObjectId * id = myAdder->getId() ; CORBA::Object_var obj = _poa->id_to_reference(*id); @@ -195,13 +193,24 @@ AdditionComponent::Adder_ptr AdditionInterface_Impl::Addition() { // return AdditionComponent::Adder::_duplicate(iobject) ; } +Adder_Impl *AdditionInterface_Impl::BuildNewAdderImplObj() +{ + Engines::Container_var cont = this->GetContainerRef(); + if( cont->is_SSL_mode() ) + { + return new Adder_Impl_SSL( _orb , _poa, _contId, instanceName() , interfaceName() , graphName() , nodeName() ) ; + } + else + { + return new Adder_Impl_No_SSL( _orb , _poa, _contId, instanceName() , interfaceName() , graphName() , nodeName() ) ; + } +} + bool AdditionInterface_Impl::AdditionObjRef1( AdditionComponent::Adder_out aAdder ) { beginService( "AdditionInterface_Impl::Addition" ); sendMessage(NOTIF_STEP, "AdditionInterface_Impl creates Adder_Impl"); - Adder_Impl * myAdder ; - myAdder = new Adder_Impl( _orb , _poa, _contId, - instanceName() , interfaceName() , - graphName() , nodeName() ) ; + Adder_Impl * myAdder = nullptr; + myAdder = this->BuildNewAdderImplObj() ; AdditionComponent::Adder_var iobject ; PortableServer::ObjectId * id = myAdder->getId() ; CORBA::Object_var obj = _poa->id_to_reference(*id); @@ -216,9 +225,7 @@ void AdditionInterface_Impl::AdditionObjRef2( CORBA::Boolean & FuncValue , beginService( "AdditionInterface_Impl::Addition" ); sendMessage(NOTIF_STEP, "AdditionInterface_Impl creates Adder_Impl"); Adder_Impl * myAdder ; - myAdder = new Adder_Impl( _orb , _poa, _contId, - instanceName() , interfaceName() , - graphName() , nodeName() ) ; + myAdder = this->BuildNewAdderImplObj() ; AdditionComponent::Adder_var iobject ; PortableServer::ObjectId * id = myAdder->getId() ; CORBA::Object_var obj = _poa->id_to_reference(*id); @@ -237,9 +244,7 @@ CORBA::Boolean AdditionInterface_Impl::AdditionObjRefs( AdditionComponent::Addit bool RetVal = true ; beginService( "AdditionInterface_Impl::AdditionObjRefs" ); cout << "beginService AdditionInterface_Impl::AdditionObjRefs" << endl ; - ORB_INIT &init = *SINGLETON_::Instance() ; - ASSERT(SINGLETON_::IsAlreadyExisting()); - CORBA::ORB_var orb = init(0 , 0 ) ; + CORBA::ORB_var orb = KERNEL::GetRefToORB(); char * IOR = orb->object_to_string( AdditionInterface1 ); cout << "AdditionInterface_Impl::AdditionObjRefs AdditionInterface1 " << AdditionInterface1 << " IOR " << IOR << " nil " << CORBA::is_nil( AdditionInterface1 ) << endl ; @@ -279,8 +284,17 @@ extern "C" MESSAGE("AdditionComponentEngine_factory AdditionInterfaceEngine (" << instanceName << "," << interfaceName << "," << _getpid() << ")"); #endif - AdditionInterface_Impl * myAdditionInterface - = new AdditionInterface_Impl(orb, poa, contId, instanceName, interfaceName); + AdditionInterface_Impl * myAdditionInterface = nullptr; + CORBA::Object_var o = poa->id_to_reference(*contId); + Engines::Container_var cont = Engines::Container::_narrow(o); + if(cont->is_SSL_mode()) + { + myAdditionInterface = new AdditionInterface_Impl_SSL(orb, poa, contId, instanceName, interfaceName); + } + else + { + myAdditionInterface = new AdditionInterface_Impl_No_SSL(orb, poa, contId, instanceName, interfaceName); + } return myAdditionInterface->getId() ; } }