X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FDataTypeCatalog%2FSALOME_DataTypeCatalog_Server.cxx;h=a29401c51644720df8528bf20b2c7be0343efd8e;hb=29b4af83576e1179b3a6170055a670d5fe943910;hp=95c4ce6a1fb1e47842998e0ce8e1a79de28d1fbf;hpb=0c092bf59ee4120ef16d351b3d882ef1165570cd;p=modules%2Fkernel.git diff --git a/src/DataTypeCatalog/SALOME_DataTypeCatalog_Server.cxx b/src/DataTypeCatalog/SALOME_DataTypeCatalog_Server.cxx index 95c4ce6a1..a29401c51 100644 --- a/src/DataTypeCatalog/SALOME_DataTypeCatalog_Server.cxx +++ b/src/DataTypeCatalog/SALOME_DataTypeCatalog_Server.cxx @@ -26,120 +26,132 @@ // Module : SALOME // $Header$ -using namespace std; #include #include "SALOME_NamingService.hxx" #include "SALOME_DataTypeCatalog_impl.hxx" #include "utilities.h" -# include "Utils_SINGLETON.hxx" +#include "Utils_SINGLETON.hxx" +using namespace std; + int main(int argc,char **argv) { - try { - CosNaming::NamingContext_var _rootContext, catalogContext; - // initialize the ORB - CORBA::ORB_ptr orb = CORBA::ORB_init (argc, argv); - // initialize POA - // - long TIMESleep = 250000000; - 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 poa; - CORBA::Object_var theObj; - CORBA::Object_var obj; - CORBA::Object_var object; - SALOME_Logger::Logger_var log; - int DATA_TYPE_CATALOG=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 mgr; + try + { + CosNaming::NamingContext_var _rootContext, catalogContext; + // initialize the ORB + CORBA::ORB_ptr orb = CORBA::ORB_init (argc, argv); + // initialize POA + // + long TIMESleep = 250000000; + 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 poa; + CORBA::Object_var theObj; + CORBA::Object_var obj; + CORBA::Object_var object; + int DATA_TYPE_CATALOG=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 mgr; - 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)) - poa = PortableServer::POA::_narrow(obj); - if(!CORBA::is_nil(poa)) - mgr = 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::COMM_FAILURE& ) - { - MESSAGE( "Data Type Catalog: CORBA::COMM_FAILURE: Unable to contact the Naming Service" ) - } - if(!CORBA::is_nil(inc)) { - MESSAGE( "Data Type Catalog: Naming Service was found" ) - if(EnvL==1){ - CORBA::ORB_var orb1 = CORBA::ORB_init(argc,argv) ; - SALOME_NamingService &NS = *SINGLETON_::Instance() ; - NS.init_orb( orb1 ) ; - 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( "Data Type Catalog: Logger Server wasn't found" ) } - catch(...){ MESSAGE( "Data Type Catalog: Unknown exception" ) } - if (!CORBA::is_nil(object)) - log = SALOME_Logger::Logger::_narrow(object); - if (!CORBA::is_nil(log)){ - MESSAGE( "Data Type Catalog: Logger Server was found" ) - log->ping(); - DATA_TYPE_CATALOG=1; - break; + 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)) + poa = PortableServer::POA::_narrow(obj); + if(!CORBA::is_nil(poa)) + mgr = 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::COMM_FAILURE& ) + { + MESSAGE( "Data Type Catalog: CORBA::COMM_FAILURE: Unable to contact the Naming Service" ); } + if(!CORBA::is_nil(inc)) + { + MESSAGE( "Data Type Catalog: Naming Service was found" ); + if(EnvL==1) + { + CORBA::ORB_var orb1 = CORBA::ORB_init(argc,argv) ; + SALOME_NamingService &NS = *SINGLETON_::Instance() ; + NS.init_orb( orb1 ) ; + 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( "Data Type Catalog: Logger Server wasn't found" ); + } + catch(...) + { + MESSAGE( "Data Type Catalog: Unknown exception" ); + } + if (!CORBA::is_nil(object)) + { + MESSAGE( "Data Type Catalog: Logger Server was found" ); + DATA_TYPE_CATALOG=1; + break; + } - }} - } - if ((DATA_TYPE_CATALOG==1)||((EnvL==0)&&(!CORBA::is_nil(inc)))) - break; + } + } } + if ((DATA_TYPE_CATALOG==1)||((EnvL==0)&&(!CORBA::is_nil(inc)))) + break; + } - // - // Active catalog + // Active catalog - SALOME_DataTypeCatalogImpl* Catalogue_i = new SALOME_DataTypeCatalogImpl(argc, argv); - poa->activate_object (Catalogue_i); + SALOME_DataTypeCatalogImpl* Catalogue_i = new SALOME_DataTypeCatalogImpl(argc, argv); + poa->activate_object (Catalogue_i); - mgr->activate(); + mgr->activate(); - CORBA::Object_ptr myCata = Catalogue_i->_this(); + CORBA::Object_ptr myCata = Catalogue_i->_this(); - // initialise Naming Service - SALOME_NamingService *_NS; - _NS = new SALOME_NamingService(orb); - // register Catalog in Naming Service - _NS->Register(myCata ,"/Kernel/DataTypeCatalog"); + // initialise Naming Service + SALOME_NamingService *_NS; + _NS = new SALOME_NamingService(orb); + // register Catalog in Naming Service + _NS->Register(myCata ,"/Kernel/DataTypeCatalog"); - MESSAGE("Running DataType Catalog Server.") + MESSAGE("Running DataType Catalog Server.") - orb->run(); + orb->run(); - poa->destroy(1,1); + poa->destroy(1,1); - } - catch(CORBA::SystemException&) { + } + catch(CORBA::SystemException&) { INFOS("Caught CORBA::SystemException.") - } - catch(CORBA::Exception&) { + } + catch(CORBA::Exception&) { INFOS("Caught CORBA::Exception.") - } + } return 0; }