diff options
Diffstat (limited to 'TAO/examples/POA/TIE/server.cpp')
-rw-r--r-- | TAO/examples/POA/TIE/server.cpp | 396 |
1 files changed, 209 insertions, 187 deletions
diff --git a/TAO/examples/POA/TIE/server.cpp b/TAO/examples/POA/TIE/server.cpp index 8264cb6f8bf..5df931b3beb 100644 --- a/TAO/examples/POA/TIE/server.cpp +++ b/TAO/examples/POA/TIE/server.cpp @@ -22,249 +22,271 @@ ACE_RCSID(TIE, server, "$Id$") int main (int argc, char **argv) { - ACE_DECLARE_NEW_CORBA_ENV; + CORBA::Environment env; - char str[256]; + // Initialize the ORB first. + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - ACE_TRY + if (env.exception () != 0) { - ACE_OS::strcpy (str, "CORBA::ORB_init"); - - // Initialize the ORB first. - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, ACE_TRY_ENV); - ACE_TRY_CHECK; - - // Obtain the RootPOA. - CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA"); - - ACE_OS::strcpy (str, "PortableServer::POA::_narrow"); + env.print_exception ("CORBA::ORB_init"); + return -1; + } - // Get the POA_var object from Object_var. - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; + // Obtain the RootPOA. + CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA"); - ACE_OS::strcpy (str, "PortableServer::POA::the_POAManager"); - // Get the POAManager of the RootPOA. - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (ACE_TRY_ENV); - ACE_TRY_CHECK; + // Get the POA_var object from Object_var. + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (obj.in (), env); + if (env.exception () != 0) + { + env.print_exception ("PortableServer::POA::_narrow"); + return -1; + } - // Policies for the firstPOA to be created. - CORBA::PolicyList policies (2); - policies.length (2); + // Get the POAManager of the RootPOA. + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (env); - ACE_OS::strcpy (str,"PortableServer::POA::create_lifespan_policy"); - // Lifespan policy - policies[0] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT, ACE_TRY_ENV); - ACE_TRY_CHECK; + if (env.exception () != 0) + { + env.print_exception ("PortableServer::POA::the_POAManager"); + return -1; + } - ACE_OS::strcpy (str, "PortableServer::POA::create_implicit_activation_policy"); - // Implicit activation policy - policies[1] = - root_poa->create_implicit_activation_policy (PortableServer::IMPLICIT_ACTIVATION, ACE_TRY_ENV); - ACE_TRY_CHECK; + // Policies for the firstPOA to be created. + CORBA::PolicyList policies (2); + policies.length (2); - ACE_OS::strcpy (str, "PortableServer::POA::create_POA"); - // Create the firstPOA under the RootPOA. - ACE_CString name = "firstPOA"; - PortableServer::POA_var first_poa = - root_poa->create_POA (name.c_str (), - poa_manager.in (), - policies, - ACE_TRY_ENV); - ACE_TRY_CHECK; + // Lifespan policy + policies[0] = + root_poa->create_lifespan_policy (PortableServer::PERSISTENT, env); + if (env.exception () != 0) + { + env.print_exception ("PortableServer::POA::create_lifespan_policy"); + return -1; + } + // Implicit activation policy + policies[1] = + root_poa->create_implicit_activation_policy (PortableServer::IMPLICIT_ACTIVATION, env); + if (env.exception () != 0) + { + env.print_exception ("PortableServer::POA::create_implicit_activation_policy"); + return -1; + } - ACE_OS::strcpy (str,"PortableServer::POA::create_POA"); + // Create the firstPOA under the RootPOA. + ACE_CString name = "firstPOA"; + PortableServer::POA_var first_poa = + root_poa->create_POA (name.c_str (), + poa_manager.in (), + policies, + env); + if (env.exception () != 0) + { + env.print_exception ("PortableServer::POA::create_POA"); + return -1; + } - // Creation of POAs is over. Destroy the Policy objects. - for (CORBA::ULong i = 0; - i < policies.length (); - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (ACE_TRY_ENV); - ACE_TRY_CHECK; - } + // Creation of POAs is over. Destroy the Policy objects. + for (CORBA::ULong i = 0; + i < policies.length () && env.exception () == 0; + ++i) + { + CORBA::Policy_ptr policy = policies[i]; + policy->destroy (env); + } + if (env.exception () != 0) + { + env.print_exception ("PortableServer::POA::create_POA"); + return -1; + } - // Create A_i - A_i a_impl (27, first_poa.in ()); + // Create A_i + A_i a_impl (27, first_poa.in ()); - // Create B_i - Outer_i::B_i b_impl (28, first_poa.in ()); + // Create B_i + Outer_i::B_i b_impl (28, first_poa.in ()); - // Create C_i - Outer_i::Inner_i::C_i c_impl (29, first_poa.in ()); + // Create C_i + Outer_i::Inner_i::C_i c_impl (29, first_poa.in ()); - // Create A tie - Tie_i a_tie_i (30); - POA_A_tie <Tie_i> a_tie_impl (a_tie_i, first_poa.in ()); + // Create A tie + Tie_i a_tie_i (30); + POA_A_tie <Tie_i> a_tie_impl (a_tie_i, first_poa.in ()); #if defined (ACE_HAS_USING_KEYWORD) - // Create B tie - Tie_i b_tie_i (31); - POA_Outer::B_tie <Tie_i> b_tie_impl (b_tie_i, first_poa.in ()); + // Create B tie + Tie_i b_tie_i (31); + POA_Outer::B_tie <Tie_i> b_tie_impl (b_tie_i, first_poa.in ()); - // Create C tie - Tie_i c_tie_i (32); - POA_Outer::Inner::C_tie <Tie_i> c_tie_impl (c_tie_i, first_poa.in ()); + // Create C tie + Tie_i c_tie_i (32); + POA_Outer::Inner::C_tie <Tie_i> c_tie_impl (c_tie_i, first_poa.in ()); #endif /* ACE_HAS_USING_KEYWORD */ - ACE_OS::strcpy (str, "POA_A::_this"); - // Get Object Reference for the a_impl object. - A_var a = a_impl._this (ACE_TRY_ENV); - ACE_TRY_CHECK; + // Get Object Reference for the a_impl object. + A_var a = a_impl._this (env); + if (env.exception () != 0) + { + env.print_exception ("POA_A::_this"); + return -1; + } - ACE_OS::strcpy (str, "POA_Outer::B::_this"); - // Get Object Reference for the b_impl object. - Outer::B_var b = b_impl._this (ACE_TRY_ENV); - ACE_TRY_CHECK; + // Get Object Reference for the b_impl object. + Outer::B_var b = b_impl._this (env); - ACE_OS::strcpy (str, "POA_Outer::Inner::C::_this"); - // Get Object Reference for the c_impl object. - Outer::Inner::C_var c = c_impl._this (ACE_TRY_ENV); - ACE_TRY_CHECK; + if (env.exception () != 0) + { + env.print_exception ("POA_Outer::B::_this"); + return -1; + } + + // Get Object Reference for the c_impl object. + Outer::Inner::C_var c = c_impl._this (env); - ACE_OS::strcpy (str, "POA_A::_this"); - // Get Object Reference for the a_tie_impl object. - A_var a_tie = a_tie_impl._this (ACE_TRY_ENV); - ACE_TRY_CHECK; + if (env.exception () != 0) + { + env.print_exception ("POA_Outer::Inner::C::_this"); + return -1; + } + // Get Object Reference for the a_tie_impl object. + A_var a_tie = a_tie_impl._this (env); + + if (env.exception () != 0) + { + env.print_exception ("POA_A::_this"); + return -1; + } #if defined (ACE_HAS_USING_KEYWORD) - ACE_OS::strcpy (str, "POA_Outer::B::_this"); - // Get Object Reference for the a_tie_impl object. - Outer::B_var b_tie = b_tie_impl._this (ACE_TRY_ENV); - ACE_TRY_CHECK; + // Get Object Reference for the a_tie_impl object. + Outer::B_var b_tie = b_tie_impl._this (env); - ACE_OS::strcpy (str, "POA_Outer::C::_this"); - // Get Object Reference for the c_tie_impl object. - Outer::Inner::C_var c_tie = c_tie_impl._this (ACE_TRY_ENV); - ACE_TRY_CHECK; + if (env.exception () != 0) + { + env.print_exception ("POA_Outer::B::_this"); + return -1; + } + + // Get Object Reference for the c_tie_impl object. + Outer::Inner::C_var c_tie = c_tie_impl._this (env); + + if (env.exception () != 0) + { + env.print_exception ("POA_Outer::Inner::C::_this"); + return -1; + } #endif /* ACE_HAS_USING_KEYWORD */ - ACE_OS::strcpy (str, "CORBA::ORB::object_to_string"); - // Stringyfy all the object references and print them out. - CORBA::String_var first_ior = - orb->object_to_string (a.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; - - // Stringyfy all the object references and print them out. - CORBA::String_var second_ior = - orb->object_to_string (b.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; - - // Stringyfy all the object references and print them out. - CORBA::String_var third_ior = - orb->object_to_string (c.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; - - // Stringyfy all the object references and print them out. - CORBA::String_var forth_ior = - orb->object_to_string (a_tie.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; - - FILE *output_file_1 = ACE_OS::fopen ("ior_1", "w"); - FILE *output_file_2 = ACE_OS::fopen ("ior_2", "w"); - FILE *output_file_3 = ACE_OS::fopen ("ior_3", "w"); - FILE *output_file_4 = ACE_OS::fopen ("ior_4", "w"); - - if (output_file_1) - ACE_OS::fprintf (output_file_1, - "%s", - first_ior.in ()); - if (output_file_2) - ACE_OS::fprintf (output_file_2, - "%s", - second_ior.in ()); - if (output_file_3) - ACE_OS::fprintf (output_file_3, - "%s", - third_ior.in ()); - if (output_file_4) - ACE_OS::fprintf (output_file_4, - "%s", - forth_ior.in ()); - - ACE_OS::fclose (output_file_1); - ACE_OS::fclose (output_file_2); - ACE_OS::fclose (output_file_3); - ACE_OS::fclose (output_file_4); + // Stringyfy all the object references and print them out. + CORBA::String_var first_ior = + orb->object_to_string (a.in (), env); -#if defined (ACE_HAS_USING_KEYWORD) + if (env.exception () != 0) + { + env.print_exception ("CORBA::ORB::object_to_string"); + return -1; + } + + // Stringyfy all the object references and print them out. + CORBA::String_var second_ior = + orb->object_to_string (b.in (), env); + + if (env.exception () != 0) + { + env.print_exception ("CORBA::ORB::object_to_string"); + return -1; + } + + // Stringyfy all the object references and print them out. + CORBA::String_var third_ior = + orb->object_to_string (c.in (), env); + + if (env.exception () != 0) + { + env.print_exception ("CORBA::ORB::object_to_string"); + return -1; + } - // Stringyfy all the object references and print them out. - CORBA::String_var fifth_ior = - orb->object_to_string (b_tie.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; + // Stringyfy all the object references and print them out. + CORBA::String_var forth_ior = + orb->object_to_string (a_tie.in (), env); + if (env.exception () != 0) + { + env.print_exception ("CORBA::ORB::object_to_string"); + return -1; + } - // Stringyfy all the object references and print them out. - CORBA::String_var sixth_ior = - orb->object_to_string (c_tie.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; +#if defined (ACE_HAS_USING_KEYWORD) - FILE *output_file_5 = ACE_OS::fopen ("ior_5", "w"); - FILE *output_file_6 = ACE_OS::fopen ("ior_6", "w"); - - if (output_file_5) - ACE_OS::fprintf (output_file_5, - "%s", - fifth_ior.in ()); - if (output_file_6) - ACE_OS::fprintf (output_file_6, - "%s", - sixth_ior.in ()); + // Stringyfy all the object references and print them out. + CORBA::String_var fifth_ior = + orb->object_to_string (b_tie.in (), env); - ACE_OS::fclose (output_file_5); - ACE_OS::fclose (output_file_6); + if (env.exception () != 0) + { + env.print_exception ("CORBA::ORB::object_to_string"); + return -1; + } + + // Stringyfy all the object references and print them out. + CORBA::String_var sixth_ior = + orb->object_to_string (c_tie.in (), env); + + if (env.exception () != 0) + { + env.print_exception ("CORBA::ORB::object_to_string"); + return -1; + } #endif /* ACE_HAS_USING_KEYWORD */ - ACE_DEBUG ((LM_DEBUG, - "%s\n%s\n%s\n%s\n", - first_ior.in (), - second_ior.in (), - third_ior.in (), - forth_ior.in ())); + ACE_DEBUG ((LM_DEBUG, + "%s\n%s\n%s\n%s\n", + first_ior.in (), + second_ior.in (), + third_ior.in (), + forth_ior.in ())); #if defined (ACE_HAS_USING_KEYWORD) - ACE_DEBUG ((LM_DEBUG, - "%s\n%s\n", - fifth_ior.in (), - sixth_ior.in ())); + ACE_DEBUG ((LM_DEBUG, + "%s\n%s\n", + fifth_ior.in (), + sixth_ior.in ())); #endif /* ACE_HAS_USING_KEYWORD */ - poa_manager->activate (ACE_TRY_ENV); - ACE_TRY_CHECK; + poa_manager->activate (env); + if (env.exception () != 0) + { + env.print_exception ("PortableServer::POAManager::activate"); + return -1; + } - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1); + if (orb->run () == -1) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1); - ACE_OS::strcpy (str, "PortableServer::POA::destroy"); - // Destroy RootPOA. - root_poa->destroy (1, - 1, - ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY + // Destroy RootPOA. + root_poa->destroy (1, + 1, + env); + if (env.exception () != 0) { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, str); + env.print_exception ("PortableServer::POA::destroy"); return -1; } - ACE_ENDTRY; - ACE_CHECK_RETURN (-1); return 0; } |