diff options
-rw-r--r-- | TAO/tests/MT_Client/client_muxed.conf | 3 | ||||
-rw-r--r-- | TAO/tests/MT_Client/simple-client.conf | 3 | ||||
-rw-r--r-- | TAO/tests/NestedUpcall/Simple/client.cpp | 15 | ||||
-rw-r--r-- | TAO/tests/NestedUpcall/Simple/server.cpp | 2 | ||||
-rw-r--r-- | TAO/tests/NestedUpcall/Simple/simple-client.cpp | 195 |
5 files changed, 205 insertions, 13 deletions
diff --git a/TAO/tests/MT_Client/client_muxed.conf b/TAO/tests/MT_Client/client_muxed.conf new file mode 100644 index 00000000000..05145bd0896 --- /dev/null +++ b/TAO/tests/MT_Client/client_muxed.conf @@ -0,0 +1,3 @@ +# $Id$ + +static Client_Strategy_Factory "-ORBProfileLock null -ORBClientConnectionHandler MT -ORBTransportMuxStrategy MUXED" diff --git a/TAO/tests/MT_Client/simple-client.conf b/TAO/tests/MT_Client/simple-client.conf new file mode 100644 index 00000000000..ed5a9b0379e --- /dev/null +++ b/TAO/tests/MT_Client/simple-client.conf @@ -0,0 +1,3 @@ +# $Id$ + +static Client_Strategy_Factory "-ORBProfileLock null -ORBClientConnectionHandler ST" diff --git a/TAO/tests/NestedUpcall/Simple/client.cpp b/TAO/tests/NestedUpcall/Simple/client.cpp index 5cdfba0d2bf..b7ef73c460a 100644 --- a/TAO/tests/NestedUpcall/Simple/client.cpp +++ b/TAO/tests/NestedUpcall/Simple/client.cpp @@ -21,7 +21,7 @@ static int quiet = 0; static int number_of_threads = 1; // Number of client threads. -class Client_Task : public ACE_Task_Base +class Client_Task { public: Client_Task (client_ptr c, @@ -169,17 +169,8 @@ main (int argc, Client_Task client_tasks (client_object.in (), server.in ()); - - result = client_tasks.activate (THR_BOUND, - number_of_threads); - - if (result != 0) - return result; - - result = ACE_Thread_Manager::instance ()->wait (); - - if (result != 0) - return result; + + client_tasks.svc (); if (shutdown_server) { diff --git a/TAO/tests/NestedUpcall/Simple/server.cpp b/TAO/tests/NestedUpcall/Simple/server.cpp index 1561c7f871a..e35959b5a43 100644 --- a/TAO/tests/NestedUpcall/Simple/server.cpp +++ b/TAO/tests/NestedUpcall/Simple/server.cpp @@ -9,7 +9,7 @@ ACE_RCSID(Simple, server, "$Id$") static int quiet = 0; // The test is quiet... -static char *ior_file = "test.ior"; +static const char *ior_file = "test.ior"; // File of file to which the ior is written static int number_of_threads = 1; diff --git a/TAO/tests/NestedUpcall/Simple/simple-client.cpp b/TAO/tests/NestedUpcall/Simple/simple-client.cpp new file mode 100644 index 00000000000..8cfa5b34760 --- /dev/null +++ b/TAO/tests/NestedUpcall/Simple/simple-client.cpp @@ -0,0 +1,195 @@ +// $Id$ + +#include "client_i.h" +#include "ace/Get_Opt.h" +#include "ace/Task.h" + +ACE_RCSID(Simple, client, "$Id$") + +static const char *ior = "file://test.ior"; +// Server IOR. + +static int shutdown_server = 0; +// Flag to tell server to shutdown. + +static CORBA::UShort call_count = 5; +// # of nested calls to be made. + +static int quiet = 0; +// The test is quiet... + +static int number_of_threads = 1; +// Number of client threads. + +class Client_Task +{ +public: + Client_Task (client_ptr c, + server_ptr s); + int svc (void); + +private: + client_var client_; + server_var server_; +}; + +Client_Task::Client_Task (client_ptr c, + server_ptr s) + : client_ (client::_duplicate (c)), + server_ (server::_duplicate (s)) +{ +} + +int +Client_Task::svc (void) +{ + ACE_TRY_NEW_ENV + { + if (!quiet) + ACE_DEBUG ((LM_DEBUG, + "(%t) Client_Task::svc calling start -> time to live = %d\n", + call_count)); + + // Now, we can invoke an operation on the remote side. + this->server_->start (this->client_.in (), + call_count, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Client_Task::svc"); + return -1; + } + ACE_ENDTRY; + return 0; +} + +static int +parse_args (int argc, + char **argv) +{ + ACE_Get_Opt get_opts (argc, argv, "qxn:k:t:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'q': + quiet = 1; + break; + + case 'x': + shutdown_server = 1; + break; + + case 'n': + call_count = ACE_OS::atoi (get_opts.optarg); + break; + + case 't': + number_of_threads = ACE_OS::atoi (get_opts.optarg); + break; + + case 'k': + ior = get_opts.optarg; + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s" + " [-n number of nested calls]" + " [-k ior]" + " [-q (quite)]" + " [-x (shutdown server)]" + "\n", + argv[0]), + -1); + } + + if (ior == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "%s: no nested up calls server ior specified\n", + argv[0]), + -1); + + // Indicates successful parsing of command line. + 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; + + object = orb->string_to_object (ior, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + server_var server = server::_narrow (object.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Create an client object to hand to the other side... + client_i client_servant (quiet, + server.in ()); + + client_var client_object = client_servant._this (ACE_TRY_ENV); + ACE_TRY_CHECK; + + Client_Task client_tasks (client_object.in (), + server.in ()); + + client_tasks.svc (); + + + if (shutdown_server) + { + server->shutdown (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + + root_poa->destroy (1, + 1, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "client::main"); + return -1; + } + ACE_ENDTRY; + return 0; +} |