From a27598afca2a045330b933431c762c4099733b23 Mon Sep 17 00:00:00 2001 From: prascle Date: Fri, 27 May 2005 12:38:17 +0000 Subject: [PATCH] PR: cleaning --- src/Container/Container_i.cxx | 25 ++--- src/Container/SALOME_Container.cxx | 148 ++++++++++------------------- 2 files changed, 58 insertions(+), 115 deletions(-) diff --git a/src/Container/Container_i.cxx b/src/Container/Container_i.cxx index 59671af74..b474c2e7d 100644 --- a/src/Container/Container_i.cxx +++ b/src/Container/Container_i.cxx @@ -45,7 +45,7 @@ using namespace std; bool _Sleeping = false ; -// Needed by multi-threaded Python +// // Needed by multi-threaded Python --- Supervision int _ArgC ; char ** _ArgV ; @@ -93,25 +93,14 @@ Engines_Container_i::Engines_Container_i (CORBA::ORB_ptr orb, if(activAndRegist) ActSigIntHandler() ; - _ArgC = argc ; - _ArgV = argv ; - _argc = argc ; _argv = argv ; - int i = strlen( _argv[ 0 ] ) - 1 ; - while ( i >= 0 ) - { - if ( _argv[ 0 ][ i ] == '/' ) - { - _argv[ 0 ][ i+1 ] = '\0' ; - break ; - } - i -= 1 ; - } + string hostname = GetHostname(); MESSAGE(hostname << " " << getpid() << " Engines_Container_i starting argc " << _argc << " Thread " << pthread_self() ) ; - i = 0 ; + + int i = 0 ; while ( _argv[ i ] ) { MESSAGE(" argv" << i << " " << _argv[ i ]) ; @@ -127,6 +116,12 @@ Engines_Container_i::Engines_Container_i (CORBA::ORB_ptr orb, _isSupervContainer = false; if (strcmp(argv[1],"SuperVisionContainer") == 0) _isSupervContainer = true; + if (_isSupervContainer) + { + _ArgC = argc ; + _ArgV = argv ; + } + _containerName = BuildContainerNameForNS(containerName,hostname.c_str()); _orb = CORBA::ORB::_duplicate(orb) ; diff --git a/src/Container/SALOME_Container.cxx b/src/Container/SALOME_Container.cxx index f6bb9b0fe..b9013dbe7 100644 --- a/src/Container/SALOME_Container.cxx +++ b/src/Container/SALOME_Container.cxx @@ -30,10 +30,7 @@ #include #include -//#include "Utils_ORB_INIT.hxx" -//#include "Utils_SINGLETON.hxx" #include -#include "SALOME_NamingService.hxx" #include "SALOME_Container_i.hxx" #include "utilities.h" #include "SALOMETraceCollector.hxx" @@ -58,6 +55,7 @@ int main(int argc, char* argv[]) #ifdef HAVE_MPI2 MPI_Init(&argc,&argv); #endif + // Initialise the ORB. CORBA::ORB_var orb = CORBA::ORB_init( argc , argv ) ; SALOMETraceCollector *myThreadTrace = SALOMETraceCollector::instance(orb); @@ -80,112 +78,62 @@ int main(int argc, char* argv[]) Py_Initialize() ; PySys_SetArgv( argc , argv ) ; } - - try{ - // Obtain a reference to the root POA. - // obtain the root poa manager - // - long TIMESleep = 500000000; - int NumberOfTries = 40; - int a; - timespec ts_req; - ts_req.tv_nsec=TIMESleep; - ts_req.tv_sec=0; - timespec ts_rem; - ts_rem.tv_nsec=0; - ts_rem.tv_sec=0; - CosNaming::NamingContext_var inc; - PortableServer::POA_var root_poa; - CORBA::Object_var theObj; - CORBA::Object_var obj; - CORBA::Object_var object; - //SALOME_NamingService &naming = *SINGLETON_::Instance() ; - int CONTAINER=0; - const char * Env = getenv("USE_LOGGER"); - int EnvL =0; - if(Env != NULL && strlen(Env)) - EnvL=1; - - CosNaming::Name name; - name.length(1); - name[0].id=CORBA::string_dup("Logger"); - PortableServer::POAManager_var pman; - for(int i = 1; i <= NumberOfTries; i++){ - if(i != 1) - a=nanosleep(&ts_req,&ts_rem); - try{ - obj = orb->resolve_initial_references("RootPOA"); - if(!CORBA::is_nil(obj)) - root_poa = PortableServer::POA::_narrow(obj); - if(!CORBA::is_nil(root_poa)) - pman = root_poa->the_POAManager(); - if(!CORBA::is_nil(orb)) - theObj = orb->resolve_initial_references("NameService"); - if (!CORBA::is_nil(theObj)) - inc = CosNaming::NamingContext::_narrow(theObj); - }catch(CORBA::SystemException&){ - MESSAGE( "Container: CORBA::SystemException: Unable to contact the Naming Service" ); - } - if(!CORBA::is_nil(inc)){ - MESSAGE( "Container: Naming Service was found" ); - if(EnvL == 1){ - for(int j = 1; j <= NumberOfTries; j++){ - if(j != 1) - a=nanosleep(&ts_req, &ts_rem); - try{ - object = inc->resolve(name); - }catch(CosNaming::NamingContext::NotFound){ - MESSAGE( "Container: Logger Server wasn't found" ); - }catch(...){ - MESSAGE( "Container: Unknown exception" ); - } - if(!CORBA::is_nil(object)){ - MESSAGE( "Container: Logger Server was found" ); - CONTAINER = 1; - break; - } - } - } - } - if(CONTAINER == 1 || (EnvL == 0 && !CORBA::is_nil(inc))) - break; - } - char *containerName = ""; - if(argc > 1){ + char *containerName = ""; + if(argc > 1) + { containerName = argv[1] ; } - - Engines_Container_i * myContainer - = new Engines_Container_i(orb, root_poa, containerName , argc , argv ); - pman->activate(); - + 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(); + + 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(); - MESSAGE("SALOME_Registry_Server.cxx - orb->run()"); - timer.ShowAbsolute(); + Utils_Timer timer; + timer.Start(); + timer.Stop(); + MESSAGE("SALOME_Registry_Server.cxx - orb->run()"); + timer.ShowAbsolute(); #endif - - HandleServerSideSignals(orb); - }catch(CORBA::SystemException&){ - INFOS("Caught CORBA::SystemException."); - }catch(PortableServer::POA::WrongPolicy&){ - INFOS("Caught CORBA::WrongPolicyException."); - }catch(PortableServer::POA::ServantAlreadyActive&){ - INFOS("Caught CORBA::ServantAlreadyActiveException"); - }catch(CORBA::Exception&){ - INFOS("Caught CORBA::Exception."); - }catch(std::exception& exc){ - INFOS("Caught std::exception - "<