diff options
Diffstat (limited to 'TAO/examples/Quoter/server.cpp')
-rw-r--r-- | TAO/examples/Quoter/server.cpp | 312 |
1 files changed, 149 insertions, 163 deletions
diff --git a/TAO/examples/Quoter/server.cpp b/TAO/examples/Quoter/server.cpp index 3a4c64d1604..f92de0c4743 100644 --- a/TAO/examples/Quoter/server.cpp +++ b/TAO/examples/Quoter/server.cpp @@ -5,7 +5,7 @@ // Quoter_Server.cpp // // = DESCRIPTION -// The Server for the Quoter Factory +// The Server for the Quoter Factory // // = AUTHOR // Darrell Brunsch (brunsch@cs.wustl.edu) @@ -54,164 +54,154 @@ Quoter_Server::parse_args (void) return 0; } - -//Initialize the Quoter Server - int Quoter_Server::init (int argc, char* argv[], - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment& env) { - const char *exception_message = "Null Message"; - ACE_TRY - { - exception_message = "While ORB Manager init"; - if (this->orb_manager_.init (argc, argv, ACE_TRY_ENV) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init"), - -1); - ACE_TRY_CHECK; - - // Copy them, because parse_args expects them there. - this->argc_ = argc; - int i; - - // Make a copy of argv since ORB_init will change it. - this->argv_ = new char *[argc]; - - for (i = 0; i < argc; i++) - this->argv_[i] = argv[i]; - - this->parse_args (); - - // Obtain the RootPOA. - CORBA::Object_var obj = this->orb_manager_.orb()->resolve_initial_references ("RootPOA"); - - // Get the POA_var object from Object_var. - exception_message = "While narrowing the root pos"; - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; - - // Get the POAManager of the RootPOA. - exception_message = "While getting the POA Manager"; - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (ACE_TRY_ENV); - ACE_TRY_CHECK; - - ACE_NEW_RETURN (quoter_Factory_i_ptr_, - Quoter_Factory_i(this->num_of_objs_, - root_poa.in()), - 0); - - exception_message = "While initing the quoter factory"; - quoter_Factory_i_ptr_->init (ACE_TRY_ENV); - ACE_TRY_CHECK; - - PortableServer::ObjectId_var quoter_Factory_oid = - PortableServer::string_to_ObjectId ("Quoter_Factory"); + if (this->orb_manager_.init (argc, + argv, + env) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + "%p\n", + "init"), + -1); - exception_message = "While activating quoter factory"; - root_poa->activate_object_with_id (quoter_Factory_oid.in (), - quoter_Factory_i_ptr_, - ACE_TRY_ENV); - ACE_TRY_CHECK; + // Copy them, because parse_args expects them there. + this->argc_ = argc; + int i; + + // Make a copy of argv since ORB_init will change it. + this->argv_ = new char *[argc]; + + for (i = 0; i < argc; i++) + this->argv_[i] = argv[i]; + + this->parse_args (); + + // Obtain the RootPOA. + CORBA::Object_var obj = this->orb_manager_.orb()->resolve_initial_references ("RootPOA"); + + // 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; + } + + // Get the POAManager of the RootPOA. + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (env); + + if (env.exception () != 0) + { + env.print_exception ("PortableServer::POA::the_POAManager"); + return -1; + } - // Get Object reference for first_foo_impl object. - exception_message = "While quoter_Factor::_this"; - Stock::Quoter_Factory_var quoter_Factory_var = quoter_Factory_i_ptr_->_this (ACE_TRY_ENV); - ACE_TRY_CHECK; + ACE_NEW_RETURN (quoter_Factory_i_ptr_, + Quoter_Factory_i(this->num_of_objs_, + root_poa.in()), + 0); - // Stringify the object reference and print it out. - exception_message = "While object_to_string"; - CORBA::String_var quoter_Factory_ior = - this->orb_manager_.orb()->object_to_string (quoter_Factory_var.in (), ACE_TRY_ENV); + PortableServer::ObjectId_var quoter_Factory_oid = + PortableServer::string_to_ObjectId ("Quoter_Factory"); - exception_message = "While activating the POA Manager"; - poa_manager->activate (ACE_TRY_ENV); + root_poa->activate_object_with_id (quoter_Factory_oid.in (), + quoter_Factory_i_ptr_, + env); - ACE_DEBUG ((LM_DEBUG, - "The IOR is: <%s>\n", - quoter_Factory_ior.in ())); + // Get Object reference for first_foo_impl object. + Stock::Quoter_Factory_var quoter_Factory_var = quoter_Factory_i_ptr_->_this (env); + if (env.exception () != 0) + { + env.print_exception ("Quoter_Factory::_this"); + return -1; } - ACE_CATCHANY + + // Stringyfy the object reference and print it out. + CORBA::String_var quoter_Factory_ior = + this->orb_manager_.orb()->object_to_string (quoter_Factory_var.in (), env); + + if (env.exception () != 0) { - ACE_ERROR ((LM_ERROR, "Quote_Server::init - %s\n", exception_message)); - ACE_TRY_ENV.print_exception ("SYS_EX"); - ACE_RETHROW; + env.print_exception ("CORBA::ORB::object_to_string"); + return -1; + } + + poa_manager->activate (env); + if (env.exception () != 0) + { + env.print_exception ("PortableServer::POAManager::activate"); + return -1; } - ACE_ENDTRY; - return this->init_naming_service (ACE_TRY_ENV); -} + ACE_DEBUG ((LM_DEBUG, + "The IOR is: <%s>\n", + quoter_Factory_ior.in ())); + + return this->init_naming_service (env); +} // Initialization of Naming Service and register IDL_Quoter Context // and Quoter_factory object. int -Quoter_Server::init_naming_service (CORBA::Environment &ACE_TRY_ENV) +Quoter_Server::init_naming_service (CORBA::Environment& env) { - const char *exception_message = "Null Message"; - ACE_TRY - { - CORBA::ORB_ptr orb_ptr = TAO_ORB_Core_instance()->orb(); - - CORBA::Object_var naming_obj = - orb_ptr->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - - exception_message = "While narrowing naming context"; - namingContext_var_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; - - CosNaming::Name quoterContextName (1); - quoterContextName.length (1); - quoterContextName[0].id = CORBA::string_dup ("IDL_Quoter"); - - exception_message = "While binding a new context"; - CosNaming::NamingContext_var quoterNameContext = - namingContext_var_->bind_new_context (quoterContextName, ACE_TRY_ENV); - ACE_TRY_CHECK; - - //Register the quoter_factory name with the IDL_quoter Naming - //Context... - CosNaming::Name quoterFactoryContextName (1); - quoterFactoryContextName.length (1); - quoterFactoryContextName[0].id = CORBA::string_dup ("Quoter_Factory"); - - exception_message = "While using factory _this"; - Stock::Quoter_Factory_var quoter_factory_var = quoter_Factory_i_ptr_->_this (ACE_TRY_ENV); - ACE_TRY_CHECK; - - exception_message = "While binding factory"; - quoterNameContext->bind (quoterFactoryContextName, - quoter_factory_var, - ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_ERROR ((LM_ERROR, "Quote_Server::init_naming_service - %s", exception_message)); - ACE_TRY_ENV.print_exception ("SYS_EX"); - return -1; - } - ACE_ENDTRY; - + TAO_TRY + { + CORBA::ORB_ptr orb_ptr = TAO_ORB_Core_instance()->orb(); + TAO_CHECK_ENV; + + CORBA::Object_var naming_obj = + orb_ptr->resolve_initial_references ("NameService"); + + if (CORBA::is_nil (naming_obj.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to resolve the Name Service.\n"), + -1); + + namingContext_var_ = + CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); + TAO_CHECK_ENV; + + + CosNaming::Name quoterContextName (1); + quoterContextName.length (1); + quoterContextName[0].id = CORBA::string_dup ("IDL_Quoter"); + CosNaming::NamingContext_var quoterNameContext = + namingContext_var_->bind_new_context (quoterContextName, env); + TAO_CHECK_ENV_RETURN (env, -1); + + //Register the quoter_factory name with the IDL_quoter Naming + //Context... + CosNaming::Name quoterFactoryContextName (1); + quoterFactoryContextName.length (1); + quoterFactoryContextName[0].id = CORBA::string_dup ("Quoter_Factory"); + quoterNameContext->bind (quoterFactoryContextName, + quoter_Factory_i_ptr_->_this(env), + env); + TAO_CHECK_ENV_RETURN (env, -1); + + } + TAO_CATCHANY + { + TAO_TRY_ENV.print_exception ("Quoter::init_naming_service"); + return -1; + } + TAO_ENDTRY; + return 0; } int -Quoter_Server::run (CORBA::Environment &ACE_TRY_ENV) +Quoter_Server::run (CORBA::Environment& env) { - ACE_UNUSED_ARG (ACE_TRY_ENV); - if (orb_manager_.orb()->run () == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", @@ -222,33 +212,29 @@ Quoter_Server::run (CORBA::Environment &ACE_TRY_ENV) Quoter_Server::~Quoter_Server (void) { - ACE_TRY_NEW_ENV + TAO_TRY { // Unbind quoter factory context and name. CosNaming::Name factory_name (2); factory_name.length (2); factory_name[0].id = CORBA::string_dup ("IDL_Quoter"); factory_name[1].id = CORBA::string_dup ("Quoter_Factory"); - if (this->namingContext_var_.ptr () != 0) - this->namingContext_var_->unbind (factory_name, ACE_TRY_ENV); - ACE_TRY_CHECK; - + this->namingContext_var_->unbind (factory_name,TAO_TRY_ENV); + TAO_CHECK_ENV; factory_name.length (1); - if (this->namingContext_var_.ptr () != 0) - this->namingContext_var_->unbind (factory_name, ACE_TRY_ENV); - ACE_TRY_CHECK; + this->namingContext_var_->unbind (factory_name,TAO_TRY_ENV); } - ACE_CATCHANY + TAO_CATCH (CORBA::SystemException, sysex) { - ACE_ERROR ((LM_ERROR, - "Could not unbind Quoter Server from the Name Service\n")); - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "~Quoter_Server"); + ACE_UNUSED_ARG (sysex); + TAO_TRY_ENV.print_exception ("System Exception"); } - ACE_ENDTRY; - - delete [] this->argv_; - delete this->quoter_Factory_i_ptr_; + TAO_CATCH (CORBA::UserException, userex) + { + ACE_UNUSED_ARG (userex); + TAO_TRY_ENV.print_exception ("User Exception"); + } + TAO_ENDTRY; } int @@ -258,28 +244,28 @@ main (int argc, char *argv[]) ACE_DEBUG ((LM_DEBUG, "\n\tQuoter:SERVER \n \n")); - - ACE_TRY_NEW_ENV + TAO_TRY { - if (quoter_server.init (argc, argv, ACE_TRY_ENV) == -1) + if (quoter_server.init (argc, argv, TAO_TRY_ENV) == -1) return 1; - ACE_TRY_CHECK; - - quoter_server.run (ACE_TRY_ENV); - ACE_TRY_CHECK; + else + { + quoter_server.run (TAO_TRY_ENV); + TAO_CHECK_ENV; + } } - ACE_CATCH (CORBA::SystemException, sysex) + TAO_CATCH (CORBA::SystemException, sysex) { ACE_UNUSED_ARG (sysex); - ACE_TRY_ENV.print_exception ("System Exception"); + TAO_TRY_ENV.print_exception ("System Exception"); return -1; } - ACE_CATCH (CORBA::UserException, userex) + TAO_CATCH (CORBA::UserException, userex) { ACE_UNUSED_ARG (userex); - ACE_TRY_ENV.print_exception ("User Exception"); + TAO_TRY_ENV.print_exception ("User Exception"); return -1; } - ACE_ENDTRY; + TAO_ENDTRY; return 0; } |