diff options
Diffstat (limited to 'TAO/tests/NestedUpcall/Simple/server.cpp')
-rw-r--r-- | TAO/tests/NestedUpcall/Simple/server.cpp | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/TAO/tests/NestedUpcall/Simple/server.cpp b/TAO/tests/NestedUpcall/Simple/server.cpp deleted file mode 100644 index 1561c7f871a..00000000000 --- a/TAO/tests/NestedUpcall/Simple/server.cpp +++ /dev/null @@ -1,178 +0,0 @@ -// $Id$ - -#include "server_i.h" -#include "ace/Get_Opt.h" -#include "ace/Task.h" - -ACE_RCSID(Simple, server, "$Id$") - -static int quiet = 0; -// The test is quiet... - -static char *ior_file = "test.ior"; -// File of file to which the ior is written - -static int number_of_threads = 1; -// Number of server threads. - -class Server_Task : public ACE_Task_Base -{ -public: - Server_Task (CORBA::ORB_ptr orb); - int svc (void); - -private: - CORBA::ORB_var orb_; -}; - -Server_Task::Server_Task (CORBA::ORB_ptr orb) - : orb_ (CORBA::ORB::_duplicate (orb)) -{ -} - -int -Server_Task::svc (void) -{ - return this->orb_->run (); -} - -static int -write_ior_to_file (const char *ior) -{ - FILE *output_file = ACE_OS::fopen (ior_file, "w"); - - if (output_file == 0) - ACE_ERROR_RETURN ((LM_ERROR, "Cannot open output files for writing IOR: %s\n", - ior_file), - -1); - - int result = 0; - - result = ACE_OS::fprintf (output_file, - "%s", - ior); - if (result < 0 || - ACE_static_cast (size_t, result) != ACE_OS::strlen (ior)) - ACE_ERROR_RETURN ((LM_ERROR, - "ACE_OS::fprintf failed while writing %s to %s\n", - ior, - ior_file), - -1); - - ACE_OS::fclose (output_file); - - return 0; -} - -static int -parse_args (int argc, - char **argv) -{ - ACE_Get_Opt get_opts (argc, argv, "q:f:t:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'q': - quiet = 1; - break; - - case 't': - number_of_threads = ACE_OS::atoi (get_opts.optarg); - break; - - case 'f': - ior_file = get_opts.optarg; - break; - - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-t number of threads]" - " [-f ior file]" - " [-q (quite)]" - "\n", - argv[0]), - -1); - } - - return 0; -} - -int -main (int argc, - char **argv) -{ - ACE_TRY_NEW_ENV - { - 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; - - CORBA::Object_var object = orb->resolve_initial_references ("RootPOA", - ACE_TRY_ENV); - ACE_TRY_CHECK; - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (object.in (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (ACE_TRY_ENV); - ACE_TRY_CHECK; - - poa_manager->activate (ACE_TRY_ENV); - ACE_TRY_CHECK; - - server_i server_servant (quiet, - orb.in ()); - - server_var server_object = server_servant._this (ACE_TRY_ENV); - ACE_TRY_CHECK; - - CORBA::String_var ior = orb->object_to_string (server_object.in (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - - result = write_ior_to_file (ior.in ()); - if (result != 0) - return result; - - Server_Task server_tasks (orb.in ()); - - result = server_tasks.activate (THR_BOUND, - number_of_threads); - - if (result != 0) - return result; - - result = ACE_Thread_Manager::instance ()->wait (); - - if (result != 0) - return result; - - root_poa->destroy (1, - 1, - ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "server::main"); - return -1; - } - ACE_ENDTRY; - - return 0; -} |