Salome HOME
PR: cleaning
authorprascle <prascle>
Fri, 27 May 2005 12:38:17 +0000 (12:38 +0000)
committerprascle <prascle>
Fri, 27 May 2005 12:38:17 +0000 (12:38 +0000)
src/Container/Container_i.cxx
src/Container/SALOME_Container.cxx

index 59671af749d6450151a954f0a0653acb70de96f0..b474c2e7dd968cc947aa6600e0570db3fa8cd8dc 100644 (file)
@@ -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) ;
index f6bb9b0fe8de9f11d756cb9c0372a041941a53a0..b9013dbe79eb384686feea60066a0f5f598b062c 100644 (file)
 #include <string>
 #include <stdio.h>
 
-//#include "Utils_ORB_INIT.hxx"
-//#include "Utils_SINGLETON.hxx"
 #include <unistd.h>
-#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_<SALOME_NamingService>::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 - "<<exc.what()); 
-  }catch(...){
-    INFOS("Caught unknown exception.");
-  }
+      
+      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 - "<<exc.what()); 
+    }
+  catch(...)
+    {
+      INFOS("Caught unknown exception.");
+    }
+
 #ifdef HAVE_MPI2
   MPI_Finalize();
 #endif
+
   END_OF(argv[0]);
   delete myThreadTrace;
   return 0 ;