From: Viktor UZLOV Date: Wed, 3 Nov 2021 12:55:12 +0000 (+0300) Subject: Add SSL mode X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fvuzlov%2F26460;p=modules%2Fhomard.git Add SSL mode --- diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt index 1dcc498c..130e648c 100644 --- a/resources/CMakeLists.txt +++ b/resources/CMakeLists.txt @@ -82,4 +82,5 @@ SET(HOMARD_RESOURCES_FILES INSTALL(FILES ${HOMARD_RESOURCES_FILES} DESTINATION ${SALOME_HOMARD_INSTALL_RES_DATA}) SALOME_CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/SalomeApp.xml.in ${CMAKE_CURRENT_BINARY_DIR}/SalomeApp.xml INSTALL ${SALOME_HOMARD_INSTALL_RES_DATA}) +SALOME_CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/SalomeApp.xml.in ${CMAKE_CURRENT_BINARY_DIR}/SalomeAppSL.xml INSTALL ${SALOME_HOMARD_INSTALL_RES_DATA}) SALOME_CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/HOMARDCatalog.xml.in ${CMAKE_CURRENT_BINARY_DIR}/HOMARDCatalog.xml INSTALL ${SALOME_HOMARD_INSTALL_RES_DATA}) diff --git a/src/HOMARDGUI/CMakeLists.txt b/src/HOMARDGUI/CMakeLists.txt index 21dc2a5b..f8b15189 100644 --- a/src/HOMARDGUI/CMakeLists.txt +++ b/src/HOMARDGUI/CMakeLists.txt @@ -39,6 +39,7 @@ INCLUDE_DIRECTORIES( ${PROJECT_BINARY_DIR}/adm_local/unix ${PROJECT_SOURCE_DIR}/src/HOMARD ${PROJECT_SOURCE_DIR}/src/HOMARD_I + ${PROJECT_SOURCE_DIR}/src/FrontTrack ) # additional preprocessor / compiler flags diff --git a/src/HOMARDGUI/HOMARDGUI.cxx b/src/HOMARDGUI/HOMARDGUI.cxx index 480dff24..d20d4d5b 100644 --- a/src/HOMARDGUI/HOMARDGUI.cxx +++ b/src/HOMARDGUI/HOMARDGUI.cxx @@ -49,6 +49,8 @@ #include "SalomeApp_Module.h" #include "SALOMEconfig.h" #include +#include +#include #include @@ -78,6 +80,7 @@ //Pour le _CAST #include "SALOMEDS_Study.hxx" #include "HOMARDGUI_Utils.h" +#include "HOMARD_Component_Generator.hxx" using namespace std; @@ -105,7 +108,18 @@ HOMARDGUI::~HOMARDGUI() //======================================================================= HOMARD::HOMARD_Gen_var HOMARDGUI::InitHOMARDGen(SalomeApp_Application* app) { - Engines::EngineComponent_var comp = app->lcc()->FindOrLoad_Component( "FactoryServer","HOMARD" ); + SALOME_NamingService_Abstract *ns = SalomeApp_Application::namingService(); + Engines::EngineComponent_var comp; + if (ns->IsTrueNS()) + { + comp = app->lcc()->FindOrLoad_Component( "FactoryServer","HOMARD" ); + } + else + { + comp = RetrieveHOMARDInstance(); + CORBA::Object_var comp2 = CORBA::Object::_narrow(comp); + KERNEL::RegisterCompo("HOMARD",comp2); + } HOMARD::HOMARD_Gen_var clr = HOMARD::HOMARD_Gen::_narrow(comp); ASSERT(!CORBA::is_nil(clr)); return clr; diff --git a/src/HOMARD_I/CMakeLists.txt b/src/HOMARD_I/CMakeLists.txt index d22c3725..274c8afd 100644 --- a/src/HOMARD_I/CMakeLists.txt +++ b/src/HOMARD_I/CMakeLists.txt @@ -61,6 +61,7 @@ SET(_link_LIBRARIES # header files / no moc processing SET(HOMARDEngine_HEADERS HOMARD_Cas_i.hxx + HOMARD_Component_Generator.hxx HOMARD_Hypothesis_i.hxx HOMARD_Iteration_i.hxx HOMARD_Zone_i.hxx @@ -78,6 +79,7 @@ SET(HOMARDEngine_HEADERS # sources / static SET(HOMARDEngine_SOURCES HOMARD_Cas_i.cxx + HOMARD_Component_Generator.cxx HOMARD_Hypothesis_i.cxx HOMARD_Iteration_i.cxx HOMARD_Gen_i.cxx diff --git a/src/HOMARD_I/HOMARD_Component_Generator.cxx b/src/HOMARD_I/HOMARD_Component_Generator.cxx new file mode 100644 index 00000000..c104cfb5 --- /dev/null +++ b/src/HOMARD_I/HOMARD_Component_Generator.cxx @@ -0,0 +1,56 @@ +// Copyright (C) 2021 CEA/DEN, EDF R&D, OPEN CASCADE +// +// 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 +// + +#include "HOMARD_Component_Generator.hxx" + +#include "SALOME_Container_i.hxx" +#include "SALOME_KernelServices.hxx" + +#include + +static Engines::EngineComponent_var _unique_compo; + +Engines::EngineComponent_var RetrieveHOMARDInstance() +{ + constexpr char COMPO_NAME[]="HOMARD"; + if (CORBA::is_nil(_unique_compo)) + { + CORBA::ORB_var orb; + { + int argc(0); + orb = CORBA::ORB_init(argc, nullptr); + } + CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); + PortableServer::POA_var poa = PortableServer::POA::_narrow(obj); + PortableServer::POAManager_var pman = poa->the_POAManager(); + CORBA::PolicyList policies; + policies.length(0); + auto *cont(KERNEL::getContainerSA()); + PortableServer::ObjectId *conId(cont->getCORBAId()); + // + pman->activate(); + // + HOMARD_Gen_i_No_Session *servant = new HOMARD_Gen_i_No_Session(orb, poa, conId, "HOMARD_inst_2", COMPO_NAME); + PortableServer::ObjectId *zeId = servant->getId(); + CORBA::Object_var zeRef = poa->id_to_reference(*zeId); + KERNEL::RegisterCompo(COMPO_NAME,zeRef); + _unique_compo = Engines::EngineComponent::_narrow(zeRef); + } + return _unique_compo; +} diff --git a/src/HOMARD_I/HOMARD_Component_Generator.hxx b/src/HOMARD_I/HOMARD_Component_Generator.hxx new file mode 100644 index 00000000..9ddaa829 --- /dev/null +++ b/src/HOMARD_I/HOMARD_Component_Generator.hxx @@ -0,0 +1,28 @@ +// Copyright (C) 2021 CEA/DEN, EDF R&D, OPEN CASCADE +// +// 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 +// + +#pragma once + +#include "HOMARD_Gen_i_No_Session.hxx" + +#include "SALOMEconfig.h" + +#include CORBA_SERVER_HEADER(HOMARD_Gen) + +HOMARDENGINE_EXPORT Engines::EngineComponent_var RetrieveHOMARDInstance();