X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FContainer%2FSALOME_Container.cxx;h=3a975ac7e442afcec10db6352d1a50a9a335ba3c;hb=3ce0546302001755828c8476425a60c6ab61ac92;hp=0415c2141e0f180c7e3f8f2c3c321a30944a947a;hpb=e6bfea36374791cd31c274a2f97df90dc60ddaf3;p=modules%2Fkernel.git diff --git a/src/Container/SALOME_Container.cxx b/src/Container/SALOME_Container.cxx index 0415c2141..3a975ac7e 100644 --- a/src/Container/SALOME_Container.cxx +++ b/src/Container/SALOME_Container.cxx @@ -1,162 +1,28 @@ -// SALOME Container : implementation of container and engine for Kernel +// Copyright (C) 2021-2024 CEA, EDF // -// 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 +// 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 // -// File : SALOME_Container.cxx -// Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA -// Module : SALOME -// $Header$ - -#ifdef HAVE_MPI2 -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#ifndef WNT -#include -#else -#include -#endif +#include "SALOME_Container_Common.cxx" +#include "SALOME_NamingService.hxx" #include "SALOME_Container_i.hxx" -#include "utilities.h" -#include "Utils_ORB_INIT.hxx" -#include "Utils_SINGLETON.hxx" -#include "OpUtil.hxx" - -#ifdef CHECKTIME -#include -#endif - -#include "Container_init_python.hxx" - -using namespace std; - -extern "C" void HandleServerSideSignals(CORBA::ORB_ptr theORB); int main(int argc, char* argv[]) { -#ifdef HAVE_MPI2 - MPI_Init(&argc,&argv); -#endif - - // Initialise the ORB. - //SRN: BugID: IPAL9541, it's necessary to set a size of one message to be at least 100Mb - //CORBA::ORB_var orb = CORBA::ORB_init( argc , argv ) ; - ORB_INIT &init = *SINGLETON_::Instance() ; - ASSERT(SINGLETON_::IsAlreadyExisting()); - CORBA::ORB_ptr orb = init(0 , 0 ) ; - - // LocalTraceCollector *myThreadTrace = SALOMETraceCollector::instance(orb); - INFOS_COMPILATION; - BEGIN_OF(argv[0]); - - ASSERT(argc > 1); - SCRUTE(argv[1]); - bool isSupervContainer = false; - if (strcmp(argv[1],"SuperVisionContainer") == 0) isSupervContainer = true; - - if (!isSupervContainer) - { - int _argc = 1; - char* _argv[] = {""}; - KERNEL_PYTHON::init_python(argc,argv); - } - else - { - Py_Initialize() ; - PySys_SetArgv( argc , argv ) ; - } - - char *containerName = ""; - if(argc > 1) - { - containerName = argv[1] ; - } - - try - { - CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); - ASSERT(!CORBA::is_nil(obj)); - PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj); - - PortableServer::POAManager_var pman = root_poa->the_POAManager(); - - // add new container to the kill list -#ifndef WNT - ostrstream aCommand ; - aCommand << "addToKillList.py " << getpid() << " SALOME_Container" << ends ; - system(aCommand.str()); -#endif - - Engines_Container_i * myContainer - = new Engines_Container_i(orb, root_poa, containerName , argc , argv ); - - pman->activate(); - -#ifdef CHECKTIME - Utils_Timer timer; - timer.Start(); - timer.Stop(); - timer.ShowAbsolute(); -#endif - - HandleServerSideSignals(orb); - - } - catch(CORBA::SystemException&) - { - INFOS("Caught CORBA::SystemException."); - } - catch(PortableServer::POA::ServantAlreadyActive&) - { - INFOS("Caught CORBA::ServantAlreadyActiveException"); - } - catch(CORBA::Exception&) - { - INFOS("Caught CORBA::Exception."); - } - catch(std::exception& exc) - { - INFOS("Caught std::exception - "<deleteInstance(bp1); - return 0 ; + std::unique_ptr ns; + return container_common_main(argc,argv,std::move(ns)); } -