diff options
Diffstat (limited to 'TAO/examples/Simple/bank/Server_i.cpp')
-rw-r--r-- | TAO/examples/Simple/bank/Server_i.cpp | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/TAO/examples/Simple/bank/Server_i.cpp b/TAO/examples/Simple/bank/Server_i.cpp deleted file mode 100644 index b290e4eab98..00000000000 --- a/TAO/examples/Simple/bank/Server_i.cpp +++ /dev/null @@ -1,180 +0,0 @@ -// $Id$ - -#include "ace/Get_Opt.h" -#include "Server_i.h" - -ACE_RCSID(Bank, Server_i, "$Id$") - -// Constructor. - -Server_i::Server_i (void) - : ior_output_file_ (0) -{ - // no-op. -} - -// Destructor. - -Server_i::~Server_i (void) -{ - // no-op. -} - -// Parse the command-line arguments and set options. - -int -Server_i::parse_args (void) -{ - ACE_Get_Opt get_opts (this->argc_, this->argv_, "do:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag. - TAO_debug_level++; - break; - case 'o': // output the IOR to a file. - this->ior_output_file_ = - ACE_OS::fopen (get_opts.optarg, "w"); - - if (this->ior_output_file_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "[SERVER] Process/Thread Id : (%P/%t)Unable to open %s for writing: %p\n", - get_opts.optarg), -1); - break; - case '?': // display help for use of the server. - default: - ACE_ERROR_RETURN ((LM_ERROR, - "[SERVER] Process/Thread Id : (%P/%t)" - "usage: %s" - " [-d]" - " [-o] <ior_output_file>" - "\n", - argv_ [0]), - 1); - } - - // Indicates successful parsing of command line. - return 0; -} - -// Initialisation of Naming Service and registering the AccountManager Object - -int -Server_i::init_naming_service (CORBA::Environment& env) -{ - CORBA::ORB_var orb = this->orb_manager_.orb (); - this->orb_manager_.init_child_poa (this->argc_, - this->argv_, - "my_child_poa", - env); - PortableServer::POA_ptr child_poa - = this->orb_manager_.child_poa (); - - int result = this->my_name_server_.init (orb.in (), - child_poa); - if (result == -1) - { - return result; - } - - // Generate an IOR for the AccountManager Object and register it - // with POA. - - CORBA::String_var str = - this->orb_manager_.activate_under_child_poa ("AccountManager", - this->account_manager_impl_, - env); - - // @@ Converting the stringified IOR to an IOR. - - Bank::AccountManager_var account_manager = - Bank::AccountManager::_narrow (orb->string_to_object (str,env)); - - // Pass the Account Manager an ORB reference to use. - account_manager_impl_->orb (orb.in ()); - - // Pass the Account Manager a POA reference to use. - account_manager_impl_->poa (child_poa); - - account_manager_impl_->set_orb_manager (&orb_manager_); - - // Convert an Account Manager reference to a string. - CORBA::String_var objref = - orb->object_to_string (account_manager.in (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Print the Account Manager IOR on the console. - ACE_DEBUG ((LM_DEBUG, - "[SERVER] Process/Thread Id : (%P/%t) The IOR is: <%s>\n", - (const char *) objref)); - - // Print the Account Manager IOR to a file. - if (this->ior_output_file_) - { - ACE_OS::fprintf (this->ior_output_file_, - "%s", - account_manager.in ()); - ACE_OS::fclose (this->ior_output_file_); - } - - // Bind the Account Manager with the Naming Service. - CosNaming::Name account_manager_name (1); - account_manager_name.length (1); - account_manager_name[0].id = CORBA::string_dup ("AccountManager"); - this->my_name_server_->bind (account_manager_name, - account_manager.in (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - return 0; -} - -// Initialize the server. - -int -Server_i::init (int argc, - char *argv[], - CORBA::Environment &env) -{ - this->argc_ = argc; - this->argv_ = argv; - - // Call the init of <TAO_ORB_Manager> to initialize the ORB and - // create a child POA under the root POA. - if (this->orb_manager_.init_child_poa (argc, - argv, - "child_poa", - env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init_child_poa"), - -1); - TAO_CHECK_ENV_RETURN (env, -1); - - int result = this->parse_args (); - - if (result != 0) - return result; - - // Now create the implementation for the Account Manager. - ACE_NEW_RETURN (this->account_manager_impl_, - AccountManager_i, - -1); - - // Register the above implementation with the Naming Service. - this->init_naming_service (env); - return 0; -} - -int -Server_i::run (CORBA::Environment &env) -{ - // Run the main event loop for the ORB. - if (this->orb_manager_.run (env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "[SERVER] Process/Thread Id : (%P/%t) Server_i::run"), - -1); - return 0; -} |