diff options
Diffstat (limited to 'TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp')
-rw-r--r-- | TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp | 56 |
1 files changed, 35 insertions, 21 deletions
diff --git a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp b/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp index a156cc558e0..b5ec3320990 100644 --- a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp +++ b/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp @@ -12,35 +12,49 @@ int main (int argc, char *argv[]) TAO_TRY { // Initialize ORB. - CORBA::ORB_ptr orb = + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); TAO_CHECK_ENV; - CORBA::POA_ptr poa = - orb->POA_init(argc, argv, "POA"); - if (poa == 0) - { - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - } + CORBA::Object_var poa_object = + orb->resolve_initial_references("RootPOA"); + if (poa_object == 0) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to initialize the POA.\n"), + 1); - CORBA::Object_ptr objref = - orb->resolve_initial_references ("NameService"); + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object, TAO_TRY_ENV); + TAO_CHECK_ENV; + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (TAO_TRY_ENV); TAO_CHECK_ENV; + CORBA::Object_var naming_obj = + orb->resolve_initial_references ("NameService"); + if (naming_obj == 0) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to initialize the POA.\n"), + 1); + CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (objref, TAO_TRY_ENV); + CosNaming::NamingContext::_narrow (naming_obj, TAO_TRY_ENV); TAO_CHECK_ENV; // Create an Scheduling service servant... - ACE_Config_Scheduler *scheduler = new ACE_Config_Scheduler; - CORBA::Object::_duplicate(scheduler); + ACE_Config_Scheduler scheduler_impl; TAO_CHECK_ENV; - CORBA::String str = - orb->object_to_string (scheduler, TAO_TRY_ENV); - ACE_OS::puts ((char *) str); + RtecScheduler::Scheduler_var scheduler = + scheduler_impl._this (TAO_TRY_ENV); + TAO_CHECK_ENV; + + CORBA::String_var str = + orb->object_to_string (scheduler.in (), TAO_TRY_ENV); + TAO_CHECK_ENV; + + ACE_DEBUG ((LM_DEBUG, "The scheduler IOR is <%s>\n", str.in ())); // Register the servant with the Naming Context.... CosNaming::Name schedule_name (1); @@ -49,13 +63,13 @@ int main (int argc, char *argv[]) naming_context->bind (schedule_name, scheduler, TAO_TRY_ENV); TAO_CHECK_ENV; + poa_manager->activate (TAO_TRY_ENV); + TAO_CHECK_ENV; + ACE_DEBUG ((LM_DEBUG, "running scheduling service\n")); if (orb->run () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "run"), 1); - } + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "run"), 1); - CORBA::release (scheduler); } TAO_CATCHANY { |