summaryrefslogtreecommitdiff
path: root/TAO/examples/POA/On_Demand_Activation/server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/examples/POA/On_Demand_Activation/server.cpp')
-rw-r--r--TAO/examples/POA/On_Demand_Activation/server.cpp322
1 files changed, 157 insertions, 165 deletions
diff --git a/TAO/examples/POA/On_Demand_Activation/server.cpp b/TAO/examples/POA/On_Demand_Activation/server.cpp
index 5b0409cd135..94baef307ce 100644
--- a/TAO/examples/POA/On_Demand_Activation/server.cpp
+++ b/TAO/examples/POA/On_Demand_Activation/server.cpp
@@ -65,36 +65,36 @@ write_iors_to_file (const char *first_ior,
FILE *output_file_1 = ACE_OS::fopen (ior_output_file_1, "w");
FILE *output_file_2 = ACE_OS::fopen (ior_output_file_2, "w");
-
- if (output_file_1 == 0 ||
+
+ if (output_file_1 == 0 ||
output_file_2 == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "Cannot open output files for writing IORs: %s, %s\n",
+ ACE_ERROR_RETURN ((LM_ERROR, "Cannot open output files for writing IORs: %s, %s\n",
ior_output_file_1,
- ior_output_file_2),
+ ior_output_file_2),
-1);
int result = ACE_OS::fprintf (output_file_1,
- "%s",
+ "%s",
first_ior);
if (result <= 0
|| ACE_static_cast(size_t,result) != ACE_OS::strlen (first_ior))
- ACE_ERROR_RETURN ((LM_ERROR,
- "ACE_OS::fprintf failed while writing %s to %s\n",
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ACE_OS::fprintf failed while writing %s to %s\n",
first_ior,
ior_output_file_1),
-1);
-
+
result = ACE_OS::fprintf (output_file_2,
- "%s",
+ "%s",
second_ior);
if (result <= 0
|| ACE_static_cast(size_t,result) != ACE_OS::strlen (second_ior))
- ACE_ERROR_RETURN ((LM_ERROR,
- "ACE_OS::fprintf failed while writing %s to %s\n",
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ACE_OS::fprintf failed while writing %s to %s\n",
second_ior,
ior_output_file_2),
-1);
-
+
ACE_OS::fclose (output_file_1);
ACE_OS::fclose (output_file_2);
@@ -104,192 +104,184 @@ write_iors_to_file (const char *first_ior,
int
main (int argc, char **argv)
{
- ACE_DECLARE_NEW_CORBA_ENV;
-
- ACE_TRY
- {
- // Initialize the ORB.
- CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- int result = parse_args (argc, argv);
- if (result != 0)
- return result;
-
- // Get an Object reference to RootPOA.
- CORBA::Object_var obj =
- orb->resolve_initial_references ("RootPOA");
-
- // Narrow the Object reference to a POA reference
- PortableServer::POA_var root_poa =
- PortableServer::POA::_narrow (obj.in (), ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // Get the POAManager of RootPOA
+ // CORBA::Environment env;
- PortableServer::POAManager_var poa_manager =
- root_poa->the_POAManager (ACE_TRY_ENV);
-
- ACE_TRY_CHECK;
-
- CORBA::PolicyList policies (4);
- policies.length (4);
-
- // ID Assignment Policy
- policies[0] =
- root_poa->create_id_assignment_policy (PortableServer::USER_ID, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // Lifespan Policy
- policies[1] =
- root_poa->create_lifespan_policy (PortableServer::PERSISTENT, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // Request Processing Policy
- policies[2] =
- root_poa->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- PortableServer::POA_var first_poa;
- {
- // Servant Retention Policy
- policies[3] =
- root_poa->create_servant_retention_policy (PortableServer::RETAIN, ACE_TRY_ENV);
- ACE_TRY_CHECK;
+ ACE_DECLARE_NEW_CORBA_ENV;
- ACE_CString name = "firstPOA";
+ // Initialize the ORB.
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- // Create firstPOA as the child of RootPOA with the above policies
- // firstPOA will use SERVANT_ACTIVATOR because of RETAIN policy.
- first_poa = root_poa->create_POA (name.c_str (),
- poa_manager.in (),
- policies,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
+ int result = parse_args (argc, argv);
+ if (result != 0)
+ return result;
+
+ // Get an Object reference to RootPOA.
+ CORBA::Object_var obj =
+ orb->resolve_initial_references ("RootPOA");
+
+ // Narrow the Object reference to a POA reference
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (obj.in (), ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- }
+ // Get the POAManager of RootPOA
- PortableServer::POA_var second_poa;
- {
- // Servant Retention Policy
- policies[3] =
- root_poa->create_servant_retention_policy (PortableServer::NON_RETAIN, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- ACE_CString name = "secondPOA";
-
- // Create secondPOA as child of RootPOA with the above policies
- // secondPOA will use a SERVANT_LOCATOR because of NON_RETAIN
- // policy.
- second_poa = root_poa->create_POA (name.c_str (),
- poa_manager.in (),
- policies,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager (ACE_TRY_ENV);
- }
+ ACE_CHECK_RETURN (-1);
- // Destroy the policy objects as they have been passed to
- // create_POA and no longer needed.
- for (CORBA::ULong i = 0;
- i < policies.length () && ACE_TRY_ENV.exception () == 0;
- ++i)
- {
- CORBA::Policy_ptr policy = policies[i];
- policy->destroy (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
+ CORBA::PolicyList policies (4);
+ policies.length (4);
+ // ID Assignment Policy
+ policies[0] =
+ root_poa->create_id_assignment_policy (PortableServer::USER_ID, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ // Lifespan Policy
+ policies[1] =
+ root_poa->create_lifespan_policy (PortableServer::PERSISTENT, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- MyFooServantActivator servant_activator_impl (orb.in ());
- PortableServer::ServantActivator_var servant_activator =
- servant_activator_impl._this (ACE_TRY_ENV);
- ACE_TRY_CHECK;
+ // Request Processing Policy
+ policies[2] =
+ root_poa->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- // Set MyFooServantActivator object as the servant_manager of
- // firstPOA.
+ PortableServer::POA_var first_poa;
+ {
+ // Servant Retention Policy
+ policies[3] =
+ root_poa->create_servant_retention_policy (PortableServer::RETAIN, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ ACE_CString name = "firstPOA";
+
+ // Create firstPOA as the child of RootPOA with the above policies
+ // firstPOA will use SERVANT_ACTIVATOR because of RETAIN policy.
+ first_poa = root_poa->create_POA (name.c_str (),
+ poa_manager.in (),
+ policies,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ }
+
+ PortableServer::POA_var second_poa;
+ {
+ // Servant Retention Policy
+ policies[3] =
+ root_poa->create_servant_retention_policy (PortableServer::NON_RETAIN, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ ACE_CString name = "secondPOA";
+
+ // Create secondPOA as child of RootPOA with the above policies
+ // secondPOA will use a SERVANT_LOCATOR because of NON_RETAIN
+ // policy.
+ second_poa = root_poa->create_POA (name.c_str (),
+ poa_manager.in (),
+ policies,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ }
+
+ // Destroy the policy objects as they have been passed to
+ // create_POA and no longer needed.
+ for (CORBA::ULong i = 0;
+ i < policies.length () && ACE_TRY_ENV.exception () == 0;
+ ++i)
+ {
+ CORBA::Policy_ptr policy = policies[i];
+ policy->destroy (ACE_TRY_ENV);
+ }
+ ACE_CHECK_RETURN (-1);
- first_poa->set_servant_manager (servant_activator.in (), ACE_TRY_ENV);
- ACE_TRY_CHECK;
+ MyFooServantActivator servant_activator_impl (orb.in ());
+ PortableServer::ServantActivator_var servant_activator =
+ servant_activator_impl._this (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- // Create a reference with user created ID in firstPOA which uses
- // the MyFooServantActivator.
+ // Set MyFooServantActivator object as the servant_manager of
+ // firstPOA.
- PortableServer::ObjectId_var first_foo_oid =
- PortableServer::string_to_ObjectId ("firstFoo");
+ first_poa->set_servant_manager (servant_activator.in (), ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- CORBA::Object_var first_foo =
- first_poa->create_reference_with_id (first_foo_oid.in (), "IDL:Foo:1.0", ACE_TRY_ENV);
- ACE_TRY_CHECK;
+ // Create a reference with user created ID in firstPOA which uses
+ // the MyFooServantActivator.
+ PortableServer::ObjectId_var first_foo_oid =
+ PortableServer::string_to_ObjectId ("firstFoo");
- MyFooServantLocator servant_locator_impl (orb.in ());
- PortableServer::ServantLocator_var servant_locator =
- servant_locator_impl._this (ACE_TRY_ENV);
- ACE_TRY_CHECK;
+ CORBA::Object_var first_foo =
+ first_poa->create_reference_with_id (first_foo_oid.in (), "IDL:Foo:1.0", ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ MyFooServantLocator servant_locator_impl (orb.in ());
+ PortableServer::ServantLocator_var servant_locator =
+ servant_locator_impl._this (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- // Set MyFooServantLocator object as the servant Manager of
- // secondPOA.
- second_poa->set_servant_manager (servant_locator.in (), ACE_TRY_ENV);
- ACE_TRY_CHECK;
- // Try to create a reference with user created ID in second_poa
- // which uses MyFooServantLocator.
+ // Set MyFooServantLocator object as the servant Manager of
+ // secondPOA.
+ second_poa->set_servant_manager (servant_locator.in (), ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- PortableServer::ObjectId_var second_foo_oid =
- PortableServer::string_to_ObjectId ("secondFoo");
+ // Try to create a reference with user created ID in second_poa
+ // which uses MyFooServantLocator.
- CORBA::Object_var second_foo =
- second_poa->create_reference_with_id (second_foo_oid.in (),
- "IDL:Foo:1.0", ACE_TRY_ENV);
- ACE_TRY_CHECK;
+ PortableServer::ObjectId_var second_foo_oid =
+ PortableServer::string_to_ObjectId ("secondFoo");
- // Invoke object_to_string on the references created in firstPOA and
- // secondPOA.
+ CORBA::Object_var second_foo =
+ second_poa->create_reference_with_id (second_foo_oid.in (),
+ "IDL:Foo:1.0", ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- CORBA::String_var first_foo_ior =
- orb->object_to_string (first_foo.in (), ACE_TRY_ENV);
- ACE_TRY_CHECK;
+ // Invoke object_to_string on the references created in firstPOA and
+ // secondPOA.
+ CORBA::String_var first_foo_ior =
+ orb->object_to_string (first_foo.in (), ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- CORBA::String_var second_foo_ior =
- orb->object_to_string (second_foo.in (), ACE_TRY_ENV);
- ACE_TRY_CHECK;
+
+ CORBA::String_var second_foo_ior =
+ orb->object_to_string (second_foo.in (), ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- // Print the ior's of first_foo and second_foo.
+ // Print the ior's of first_foo and second_foo.
- ACE_DEBUG((LM_DEBUG,"%s\n%s\n",
- first_foo_ior.in (),
- second_foo_ior.in ()));
+ ACE_DEBUG((LM_DEBUG,"%s\n%s\n",
+ first_foo_ior.in (),
+ second_foo_ior.in ()));
- int write_result = write_iors_to_file (first_foo_ior.in (),
- second_foo_ior.in ());
- if (write_result != 0)
- return write_result;
+ int write_result = write_iors_to_file (first_foo_ior.in (),
+ second_foo_ior.in ());
+ if (write_result != 0)
+ return write_result;
- // Set the poa_manager state to active, ready to process requests.
- poa_manager->activate (ACE_TRY_ENV);
- ACE_TRY_CHECK;
+ // Set the poa_manager state to active, ready to process requests.
+ poa_manager->activate (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
- // Run the ORB.
- if (orb->run () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1);
+ // Run the ORB.
+ if (orb->run () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1);
- // Destroy the root_poa and also first_poa and second_poa
+ // Destroy the root_poa and also first_poa and second_poa
- root_poa->destroy (1,
- 1,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- ACE_CATCHANY
- {
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught in main");
- return -1;
- }
- ACE_ENDTRY;
+ root_poa->destroy (1,
+ 1,
+ ACE_TRY_ENV);
ACE_CHECK_RETURN (-1);
return 0;
}
+