From 692cf6706a512af268674ccd895f66d997c880b6 Mon Sep 17 00:00:00 2001 From: Anthony Geay Date: Wed, 17 Aug 2022 10:30:33 +0200 Subject: [PATCH] SSL impl --- src/AddComponent/AddComponent_Impl.cxx | 28 +++++++----- src/AddComponent/AddComponent_Impl.hxx | 9 +++- src/AddComponent/Adder_Impl.cxx | 4 +- src/AddComponent/Adder_Impl.hxx | 30 +++++++++++-- .../AdditionComponent_Impl.cxx | 45 +++++++++++++------ .../AdditionComponent_Impl.hxx | 31 +++++++++++-- src/AdditionComponent/Addition_Adder_Impl.cxx | 4 +- src/AdditionComponent/Addition_Adder_Impl.hxx | 30 +++++++++++-- 8 files changed, 142 insertions(+), 39 deletions(-) diff --git a/src/AddComponent/AddComponent_Impl.cxx b/src/AddComponent/AddComponent_Impl.cxx index b97ce50..82572f7 100644 --- a/src/AddComponent/AddComponent_Impl.cxx +++ b/src/AddComponent/AddComponent_Impl.cxx @@ -39,6 +39,7 @@ #include "OpUtil.hxx" #include "SALOME_NamingService.hxx" #include "SALOME_LifeCycleCORBA.hxx" +#include "SALOME_Container_i.hxx" #include "AddComponent_Impl.hxx" #include "Adder_Impl.hxx" @@ -183,9 +184,7 @@ SuperVisionTest::Adder_ptr AddComponent_Impl::Addition() { beginService( "AddComponent_Impl::Addition" ); sendMessage(NOTIF_STEP, "AddComponent_Impl creates Adder_Impl"); Adder_Impl * myAdder ; - myAdder = new Adder_Impl( _orb , _poa, _contId, - instanceName() , interfaceName() , - graphName() , nodeName() ) ; + myAdder = this->BuildNewAdderImplObj(); SuperVisionTest::Adder_var iobject ; PortableServer::ObjectId * id = myAdder->getId() ; CORBA::Object_var obj = _poa->id_to_reference(*id); @@ -195,13 +194,24 @@ SuperVisionTest::Adder_ptr AddComponent_Impl::Addition() { // return SuperVisionTest::Adder::_duplicate(iobject) ; } +Adder_Impl *AddComponent_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() ) ; + } +} + CORBA::Boolean AddComponent_Impl::AdditionObjRef1( SuperVisionTest::Adder_out aAdder ) { beginService( "AddComponent_Impl::Addition" ); sendMessage(NOTIF_STEP, "AddComponent_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(); SuperVisionTest::Adder_var iobject ; PortableServer::ObjectId * id = myAdder->getId() ; CORBA::Object_var obj = _poa->id_to_reference(*id); @@ -216,9 +226,7 @@ void AddComponent_Impl::AdditionObjRef2( CORBA::Boolean & FuncValue , beginService( "AddComponent_Impl::Addition" ); sendMessage(NOTIF_STEP, "AddComponent_Impl creates Adder_Impl"); Adder_Impl * myAdder ; - myAdder = new Adder_Impl( _orb , _poa, _contId, - instanceName() , interfaceName() , - graphName() , nodeName() ) ; + myAdder = this->BuildNewAdderImplObj(); SuperVisionTest::Adder_var iobject ; PortableServer::ObjectId * id = myAdder->getId() ; CORBA::Object_var obj = _poa->id_to_reference(*id); diff --git a/src/AddComponent/AddComponent_Impl.hxx b/src/AddComponent/AddComponent_Impl.hxx index 94e5481..771d84a 100644 --- a/src/AddComponent/AddComponent_Impl.hxx +++ b/src/AddComponent/AddComponent_Impl.hxx @@ -36,16 +36,18 @@ #include CORBA_SERVER_HEADER(SALOME_Component) #include "SALOME_Component_i.hxx" +class Adder_Impl; + class ADDCOMPONENTENGINE_EXPORT AddComponent_Impl : public POA_SuperVisionTest::AddComponent , public Engines_Component_i { -public: +protected: AddComponent_Impl() ; AddComponent_Impl( CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool withRegistry); - +public: virtual ~AddComponent_Impl(); virtual char* getVersion(); @@ -74,6 +76,9 @@ public: SuperVisionTest::AddComponent_out RetAddComponent1 , SuperVisionTest::AddComponent_out RetAdder2 , SuperVisionTest::AddComponent_out RetAdder3 ) ; +private: + + Adder_Impl *BuildNewAdderImplObj(); private: diff --git a/src/AddComponent/Adder_Impl.cxx b/src/AddComponent/Adder_Impl.cxx index da653b4..710e2a2 100644 --- a/src/AddComponent/Adder_Impl.cxx +++ b/src/AddComponent/Adder_Impl.cxx @@ -49,8 +49,8 @@ Adder_Impl::Adder_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("Adder_Impl::Adder_Impl activate object instanceName(" << instanceName << ") interfaceName(" << interfaceName << ") --> " diff --git a/src/AddComponent/Adder_Impl.hxx b/src/AddComponent/Adder_Impl.hxx index 688f465..c1ad5d5 100644 --- a/src/AddComponent/Adder_Impl.hxx +++ b/src/AddComponent/Adder_Impl.hxx @@ -38,7 +38,7 @@ class ADDCOMPONENTENGINE_EXPORT Adder_Impl : public POA_SuperVisionTest::Adder , public Engines_Component_i { - public: + protected: Adder_Impl() ; Adder_Impl( CORBA::ORB_ptr orb , PortableServer::POA_ptr poa , @@ -46,8 +46,8 @@ class ADDCOMPONENTENGINE_EXPORT Adder_Impl : public POA_SuperVisionTest::Adder const char *instanceName , const char *interfaceName , const char * graphName , - const char * nodeName ); - + const char * nodeName, bool withRegistry ); + public: virtual ~Adder_Impl(); virtual char* getVersion(); @@ -75,4 +75,28 @@ class ADDCOMPONENTENGINE_EXPORT Adder_Impl : public POA_SuperVisionTest::Adder }; +class ADDCOMPONENTENGINE_EXPORT Adder_Impl_SSL : public Adder_Impl +{ +public: + Adder_Impl_SSL( CORBA::ORB_ptr orb , + PortableServer::POA_ptr poa , + PortableServer::ObjectId * contId , + const char *instanceName , + const char *interfaceName , + const char * graphName , + const char * nodeName):Adder_Impl(orb,poa,contId,instanceName,interfaceName,graphName,nodeName,false) { } +}; + +class ADDCOMPONENTENGINE_EXPORT Adder_Impl_No_SSL : public Adder_Impl +{ +public: + Adder_Impl_No_SSL( CORBA::ORB_ptr orb , + PortableServer::POA_ptr poa , + PortableServer::ObjectId * contId , + const char *instanceName , + const char *interfaceName , + const char * graphName , + const char * nodeName):Adder_Impl(orb,poa,contId,instanceName,interfaceName,graphName,nodeName,true) { } +}; + #endif diff --git a/src/AdditionComponent/AdditionComponent_Impl.cxx b/src/AdditionComponent/AdditionComponent_Impl.cxx index ecde3ef..cca616f 100644 --- a/src/AdditionComponent/AdditionComponent_Impl.cxx +++ b/src/AdditionComponent/AdditionComponent_Impl.cxx @@ -39,6 +39,7 @@ #include "OpUtil.hxx" #include "SALOME_NamingService.hxx" #include "SALOME_LifeCycleCORBA.hxx" +#include "SALOME_Container_i.hxx" #include "AdditionComponent_Impl.hxx" #include "Addition_Adder_Impl.hxx" @@ -50,8 +51,8 @@ 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 << ")" ) @@ -182,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); @@ -194,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); @@ -215,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); @@ -276,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() ; } } diff --git a/src/AdditionComponent/AdditionComponent_Impl.hxx b/src/AdditionComponent/AdditionComponent_Impl.hxx index 6e09e95..4a5fe12 100644 --- a/src/AdditionComponent/AdditionComponent_Impl.hxx +++ b/src/AdditionComponent/AdditionComponent_Impl.hxx @@ -35,16 +35,18 @@ #include CORBA_SERVER_HEADER(SALOME_Component) #include "SALOME_Component_i.hxx" +class Adder_Impl; + class ADDITIONCOMPONENTENGINE_EXPORT AdditionInterface_Impl : public POA_AdditionComponent::AdditionInterface , public Engines_Component_i { -public: +protected: AdditionInterface_Impl() ; AdditionInterface_Impl( CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, - const char *interfaceName); - + const char *interfaceName, bool withRegistry); +public: virtual ~AdditionInterface_Impl(); virtual char* getVersion(); @@ -73,6 +75,9 @@ public: AdditionComponent::AdditionInterface_out RetAdditionInterface1 , AdditionComponent::AdditionInterface_out RetAdder2 , AdditionComponent::AdditionInterface_out RetAdder3 ) ; +private: + + Adder_Impl *BuildNewAdderImplObj(); private: @@ -82,6 +87,26 @@ private: }; +class ADDITIONCOMPONENTENGINE_EXPORT AdditionInterface_Impl_SSL : public AdditionInterface_Impl +{ +public: + AdditionInterface_Impl_SSL( CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa, + PortableServer::ObjectId * contId, + const char *instanceName, + const char *interfaceName):AdditionInterface_Impl(orb,poa,contId,instanceName,interfaceName,false) { } +}; + +class ADDITIONCOMPONENTENGINE_EXPORT AdditionInterface_Impl_No_SSL : public AdditionInterface_Impl +{ +public: + AdditionInterface_Impl_No_SSL( CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa, + PortableServer::ObjectId * contId, + const char *instanceName, + const char *interfaceName):AdditionInterface_Impl(orb,poa,contId,instanceName,interfaceName,true) { } +}; + extern "C" ADDITIONCOMPONENTENGINE_EXPORT PortableServer::ObjectId * AdditionInterfaceEngine_factory diff --git a/src/AdditionComponent/Addition_Adder_Impl.cxx b/src/AdditionComponent/Addition_Adder_Impl.cxx index 5f9a477..2ada4bb 100644 --- a/src/AdditionComponent/Addition_Adder_Impl.cxx +++ b/src/AdditionComponent/Addition_Adder_Impl.cxx @@ -49,8 +49,8 @@ Adder_Impl::Adder_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("Adder_Impl::Adder_Impl activate object instanceName(" << instanceName << ") interfaceName(" << interfaceName << ") --> " diff --git a/src/AdditionComponent/Addition_Adder_Impl.hxx b/src/AdditionComponent/Addition_Adder_Impl.hxx index 025120c..ff05f4b 100644 --- a/src/AdditionComponent/Addition_Adder_Impl.hxx +++ b/src/AdditionComponent/Addition_Adder_Impl.hxx @@ -38,7 +38,7 @@ class ADDITIONCOMPONENTENGINE_EXPORT Adder_Impl : public POA_AdditionComponent::Adder , public Engines_Component_i { - public: + protected: Adder_Impl() ; Adder_Impl( CORBA::ORB_ptr orb , PortableServer::POA_ptr poa , @@ -46,8 +46,8 @@ class ADDITIONCOMPONENTENGINE_EXPORT Adder_Impl : public POA_AdditionComponent: const char *instanceName , const char *interfaceName , const char * graphName , - const char * nodeName ); - + const char * nodeName, bool withRegistry ); + public: virtual ~Adder_Impl(); virtual char* getVersion(); @@ -75,4 +75,28 @@ class ADDITIONCOMPONENTENGINE_EXPORT Adder_Impl : public POA_AdditionComponent: }; +class ADDITIONCOMPONENTENGINE_EXPORT Adder_Impl_SSL : public Adder_Impl +{ +public: + Adder_Impl_SSL( CORBA::ORB_ptr orb , + PortableServer::POA_ptr poa , + PortableServer::ObjectId * contId , + const char *instanceName , + const char *interfaceName , + const char * graphName , + const char * nodeName):Adder_Impl(orb,poa,contId,instanceName,interfaceName,graphName,nodeName,false) { } +}; + +class ADDITIONCOMPONENTENGINE_EXPORT Adder_Impl_No_SSL : public Adder_Impl +{ +public: + Adder_Impl_No_SSL( CORBA::ORB_ptr orb , + PortableServer::POA_ptr poa , + PortableServer::ObjectId * contId , + const char *instanceName , + const char *interfaceName , + const char * graphName , + const char * nodeName):Adder_Impl(orb,poa,contId,instanceName,interfaceName,graphName,nodeName,true) { } +}; + #endif -- 2.39.2