-// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
//
// Copyright (C) 2003-2007 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.
+// 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
# include <stdio.h>
}
+#include "ArgvKeeper.hxx"
#include "utilities.h"
-#include "Utils_ORB_INIT.hxx"
+#include "OpUtil.hxx"
#include "Utils_SINGLETON.hxx"
#include "Utils_SALOME_Exception.hxx"
#include "Utils_CommException.hxx"
int main( int argc , char **argv )
{
- ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance() ;
- CORBA::ORB_var &orb = init( argc , argv ) ;
+ SetArgcArgv( argc, argv );
+ CORBA::ORB_var orb = KERNEL::GetRefToORB();
// LocalTraceCollector *myThreadTrace = SALOMETraceCollector::instance(orb);
- BEGIN_OF( argv[0] )
- INFOS_COMPILATION
- SCRUTE(argc)
+ BEGIN_OF( argv[0] );
+ INFOS_COMPILATION;
+ SCRUTE(argc);
if( argc<3 )
{
MESSAGE("you must provide the Salome session name when you call SALOME_Registry_Server") ;
const char *registryName = "Registry" ;
long TIMESleep = 250000000;
int NumberOfTries = 40;
-#ifndef WIN32
- int a;
-#endif
timespec ts_req;
ts_req.tv_nsec=TIMESleep;
ts_req.tv_sec=0;
{
if (i!=1)
#ifndef WIN32
- a=nanosleep(&ts_req,&ts_rem);
+ nanosleep(&ts_req,&ts_rem);
#else
Sleep(TIMESleep/1000000);
#endif
{
if (j!=1)
#ifndef WIN32
- a=nanosleep(&ts_req, &ts_rem);
+ nanosleep(&ts_req, &ts_rem);
#else
Sleep(TIMESleep/1000000);
#endif
{
object = inc->resolve(name);
}
- catch(CosNaming::NamingContext::NotFound)
+ catch(CosNaming::NamingContext::NotFound&)
{
MESSAGE( "Registry Server: Logger Server wasn't found" );
}
RegistryService *ptrRegistry = SINGLETON_<RegistryService>::Instance() ;
ptrRegistry->SessionName( ptrSessionName ) ;
ptrRegistry->SetOrb(orb);
- varComponents = ptrRegistry->_this() ;
+ //
+ CORBA::PolicyList policies;
+ policies.length(1);
+ PortableServer::ThreadPolicy_var threadPol(poa->create_thread_policy(PortableServer::SINGLE_THREAD_MODEL));
+ policies[0]=PortableServer::ThreadPolicy::_duplicate(threadPol);
+ PortableServer::POA_var poa2(poa->create_POA("SingleThreadPOA4RegistryStandalone",manager,policies));
+ threadPol->destroy();
+ //
+ PortableServer::ObjectId_var id(poa2->activate_object(ptrRegistry));
+ CORBA::Object_var pipo=poa2->id_to_reference(id);
+ varComponents = Registry::Components::_narrow(pipo) ;
ptrRegistry->_remove_ref(); //let poa manage registryservice deletion
// The RegistryService must not already exist.
}
catch( const SALOME_Exception &ex )
{
- MESSAGE( "Communication Error : " << ex.what() )
+ MESSAGE( "Communication Error : " << ex.what() );
return EXIT_FAILURE ;
}