summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp')
-rw-r--r--TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp56
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
{