diff options
Diffstat (limited to 'TAO/tests/Cubit/COOL')
22 files changed, 0 insertions, 3343 deletions
diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/Makefile b/TAO/tests/Cubit/COOL/IDL_Cubit/Makefile deleted file mode 100644 index 12f5ed52a92..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/Makefile +++ /dev/null @@ -1,140 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the CHORUS COOL Cubit tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -IDL_SRC = cubit.cpp cubit.H sk_cubit.C sk_cubit.H - -SRC = $(IDL_SRC) cubit_i.cpp server.cpp client.cpp tmplinst.cpp - -SVR_OBJS = cubit_i.o server.o cubit.o tmplinst.o - -CLT_OBJS = client.o cubit.o tmplinst.o - -LDLIBS = -lm -lOrb-mt -lposix4 - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.nonested.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.lib.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.bin.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# CHORUS related macros and target settings. -#---------------------------------------------------------------------------- - -CHORUS_BINDIR = $(CHORUS_ROOT)/bin -CHORUS_LIBDIR = $(CHORUS_ROOT)/lib -CHORUS_INCDIR = $(CHORUS_ROOT)/include - -CPPFLAGS += -I$(CHORUS_INCDIR) -I$(CHORUS_ROOT) -LDFLAGS += -L$(CHORUS_LIBDIR) -R $(CHORUS_LIBDIR) -L$(ACE)/ace -IDLFLAGS = --stub-header --stub-impl --skeleton-header --skeleton-impl --no-local --binding Cubit Cubit_i --binding Cubit_Factory Cubit_Factory_i - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: $(IDL_SRC) server client - -$(IDL_SRC): cubit.idl - $(CHORUS_BINDIR)/chic $(IDLFLAGS) cubit.idl - -/bin/mv cubit.C cubit.cpp - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf cubit.cpp cubit.H sk_cubit.C sk_cubit.H server client - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit.o .obj/cubit.so .shobj/cubit.o .shobj/cubit.so: cubit.cpp cubit.H -.obj/sk_cubit.o .obj/sk_cubit.so .shobj/sk_cubit.o .shobj/sk_cubit.so: sk_cubit.C -.obj/cubit_i.o .obj/cubit_i.so .shobj/cubit_i.o .shobj/cubit_i.so: cubit_i.cpp cubit_i.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i cubit.H sk_cubit.H -.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Get_Opt.i cubit_i.h cubit.H \ - sk_cubit.H sk_cubit.C -.obj/client.o .obj/client.so .shobj/client.o .shobj/client.so: client.cpp \ - $(ACE_ROOT)/ace/Profile_Timer.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Profile_Timer.i \ - $(ACE_ROOT)/ace/Env_Value_T.h \ - $(ACE_ROOT)/ace/Env_Value_T.i client.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i cubit.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/cool.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/api/api.H \ - sk_cubit.H -.obj/tmplinst.o .obj/tmplinst.so .shobj/tmplinst.o .shobj/tmplinst.so: tmplinst.cpp cubit.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/cool.H - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/README b/TAO/tests/Cubit/COOL/IDL_Cubit/README deleted file mode 100644 index 5987e0d6df2..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/README +++ /dev/null @@ -1,34 +0,0 @@ -This is the cubit example that uses the TAO IDL compiler to generate -the stubs and skeletons. Additional features include presence of a -factory to create Cubit objects and testing the _bind call to get the -factory object reference. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - -server: -------- - -% server [-d] [-ORBhost <serverhost>] [-ORBport <portnum>] - [-n <number-of-cubit-objects>] - -The server cubit factory maintained num_of_cubit objects (default = -1). They are assigned keys that look like "key0", "key1", ... - -When the server is started and you have used the -d flag, you should -see as the first line of output something that looks like - iiop:1.0//serverhost:10013/factory (using -ORBobjrefstyle url) -or - IOR:000000000000001649444c3a43756269745... (using default -ORBobjrefstyle ior) - -Using -d turns on debugging messages. It is additive, i.e., the more --d options provided, the more debugging you can get. At the moment, -only 2 levels of debugging are implemented, and more than 2 -d options -are ignored. - -client: -------- - -% client [-d] -h <hostname> -p <port> -k <cubit key> -n <iterations> - -cubit_key corresponds to "key0", "key1", ... diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/client.cpp b/TAO/tests/Cubit/COOL/IDL_Cubit/client.cpp deleted file mode 100644 index 8ddb3e88602..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/client.cpp +++ /dev/null @@ -1,747 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// clnt.cpp -// -// = DESCRIPTION -// This class implements a simple "cube" CORBA client for the Cubit -// example using stubs generated by the TAO ORB IDL compiler. -// -// = AUTHORS -// Copyright 1994-1995 by Sun Microsystems Inc. -// and -// Aniruddha Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Profile_Timer.h" -#include "ace/Env_Value_T.h" -#include "client.h" - -#include "api/api.H" -#include "cubit.H" -#include "sk_cubit.H" - -// Constants -u_int _debug_level = 0; -const u_int DEFAULT_PORT = 3000; -CORBA::Environment Cubit_Client::env_; - - -// Constructor. - -#define quote(x) #x - -Cubit_Client::Cubit_Client (void) - : cubit_factory_key_ ("factory"), - cubit_key_ ("key0"), - hostname_ (ACE_DEFAULT_SERVER_HOST), - loop_count_ (250), - exit_later_ (0), - factory_ (Cubit_Factory::_nil ()), - objref_ (CORBA::Object::_nil ()), - cubit_ (Cubit::_nil ()), - orb_ptr_ (0), - call_count_ (0), - error_count_ (0), - portnum_(DEFAULT_PORT) -{ -} - -// Simple function that returns the substraction of 117 from the -// parameter. - -int -Cubit_Client::func (u_int i) -{ - return i - 117; -} - -// Parses the command line arguments and returns an error status. - -int -Cubit_Client::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dn:h:p:k:x"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - _debug_level++; - break; - case 'n': // loop count - loop_count_ = (u_int) ACE_OS::atoi (get_opts.optarg); - break; - case 'h': - hostname_ = ACE_OS::strdup (get_opts.optarg); - break; - case 'p': - portnum_ = ACE_OS::atoi (get_opts.optarg); - break; - case 'k': // stringified objref - cubit_key_ = ACE_OS::strdup (get_opts.optarg); - break; - case 'x': - this->exit_later_++; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n loopcount]" - " [-k cubit-obj-ref-key]" - " [-h hostname]" - " [-p port]" - " [-x]" - "\n", - this->argv_ [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -// Exercise the union. Cube a union. - -void -Cubit_Client::cube_union_stub (void) -{ - CORBA::Environment env; - Cubit::oneof u, r; - - this->call_count_++; - - u.l (3); // use the long union branch - - // Cube a "union" ... - r = this->cubit_->cube_union (u, this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_union"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube union ...")); - u.l (u.l () * u.l () * u.l ()) ; - - if (u.l () != r.l ()) - { - ACE_DEBUG ((LM_DEBUG, "** cube_union ERROR\n")); - this->error_count_++; - } - - } - - this->call_count_++; - - u._d (Cubit::e_3rd); -#if 0 - u.cm ().l = this->func (i); - u.cm ().s = this->func (i); - u.cm ().o = this->func (i); -#endif - - u.cm ().l = 7; - u.cm ().s = 5; - u.cm ().o = 3; - - // Cube another "union" which uses the default arm ... NOT tested yet - r = this->cubit_->cube_union (u, this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_union"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube union ...")); - u.cm ().l = u.cm ().l * u.cm ().l * u.cm ().l; - u.cm ().s = u.cm ().s * u.cm ().s * u.cm ().s; - u.cm ().o = u.cm ().o * u.cm ().o * u.cm ().o; - - if (u.cm ().l != r.cm ().l - || u.cm ().s != r.cm ().s - || u.cm ().o != r.cm ().o) - { - ACE_DEBUG ((LM_DEBUG, "** cube_union ERROR\n")); - this->error_count_++; - } - } -} - -// Exercise the union using dii. - -void -Cubit_Client::cube_union_dii (void) -{ - // Create the request ... - CORBA::Request_ptr req; - - this->call_count_++; - - req = this->cubit_->_request ((CORBA::String) "cube_union", this->env_); - - if (this->env_.exception () != 0) - { - this->error_count_++; - - this->print_exception ("cube_union_dii request create"); - return; - } - - // ... initialise the argument list and result ... - Cubit::oneof *u, r; - - u = new Cubit::oneof; - u->_d (Cubit::e_3rd); - - u->cm ().l = 5; - u->cm ().s = -7; - u->cm ().o = 3; - - CORBA::Any tmp_arg (Cubit::_tc_oneof, u, CORBA_FALSE); - - req->arguments ()->add_value ("values", tmp_arg, CORBA_ARG_IN, this->env_); - - if (this->env_.exception () != 0) - { - this->error_count_++; - this->print_exception ("cube_union_dii request arg add"); - CORBA::release (req); - return; - } - - req->result ()->value ()->replace (Cubit::_tc_oneof, 0, CORBA_TRUE); - - if (this->env_.exception () != 0) - { - this->error_count_++; - this->print_exception ("cube_union_dii result type"); - CORBA::release (req); - return; - } - - // Make the invocation, verify the result. - - req->invoke (); - - if (req->env ()->exception () != 0) - { - this->error_count_++; - this->print_exception ("cube_union_dii invoke", *req->env ()); - CORBA::release (req); - return; - } - - r = *(Cubit::oneof *) req->result ()->value ()->value (); - - if (r.cm ().o != 27 || r.cm ().l != 125 || r.cm ().s != -343) - { - this->error_count_++; - ACE_ERROR ((LM_ERROR, "cube_union_dii -- bad results\n")); - } - else - ACE_DEBUG ((LM_DEBUG, "cube_union_dii ... success!!")); - - CORBA::release (req); - delete u; -} - -// Cube a short. - -void -Cubit_Client::cube_short (int i) -{ - CORBA::Short arg_short = this->func (i); - // Cube a short. - CORBA::Short ret_short = cubit_->cube_short (arg_short, this->env_); - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_short"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube short: %d --> %d\n", - arg_short, - ret_short)); - arg_short = arg_short * arg_short * arg_short; - - if (arg_short != ret_short) - { - ACE_ERROR ((LM_ERROR, "** cube_short (%d) ERROR (--> %d)\n", - (CORBA::Short) this->func (i), - ret_short)); - this->error_count_++; - } - } -} - -// Cube an octet - -void -Cubit_Client::cube_octet (int i) -{ - CORBA::Octet arg_octet = this->func (i); - - // Cube an octet. - CORBA::Octet ret_octet = this->cubit_->cube_octet (arg_octet, this->env_); - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_octet"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube octet: %d --> %d\n", arg_octet, ret_octet)); - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_DEBUG ((LM_DEBUG, - "** cube_octet (%d) ERROR (--> %d)\n", - (CORBA::Octet) this->func (i), - ret_octet)); - this->error_count_++; - } - } -} - -// calculate the cube from a long - -void -Cubit_Client::cube_long (int i) -{ - CORBA::Long arg_long = this->func (i); - - // Cube a long. - CORBA::Long ret_long = this->cubit_->cube_long (arg_long, this->env_);; - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_long"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube long: %d --> %d\n", arg_long, ret_long)); - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_ERROR ((LM_ERROR, - "** cube_long (%ld) ERROR (--> %ld)\n", - (CORBA::Long) this->func (i), - ret_long)); - this->error_count_++; - } - } -} - -// Cube the numbers in a struct - -void -Cubit_Client::cube_struct (int i) -{ - Cubit::Many arg_struct; - Cubit::Many ret_struct; - - this->call_count_++; - - arg_struct.l = this->func (i); - arg_struct.s = this->func (i); - arg_struct.o = this->func (i); - - // Cube a "struct" ... - ret_struct = this->cubit_->cube_struct (arg_struct, this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_struct"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube struct ...")); - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o) - { - ACE_ERROR ((LM_ERROR, "** cube_struct ERROR\n")); - this->error_count_++; - } - } -} - -// Cube the numbers in a struct - -void -Cubit_Client::cube_struct_dii (void) -{ - // Create the request ... - CORBA::Request_ptr req = - this->cubit_->_request ((CORBA::String) "cube_struct", this->env_); - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->print_exception ("DII request create"); - return; - } - - // ... initialise the argument list and result ... - Cubit::Many arg; - Cubit::Many result; - - arg.o = 3; - arg.l = 5; - arg.s = -7; - - CORBA::Any tmp_arg (Cubit::_tc_Many, &arg, CORBA_FALSE); - - req->arguments ()->add_value ("values", tmp_arg, CORBA_ARG_IN, this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("DII request arg add"); - CORBA::release (req); - return; - } - - req->result ()->value ()->replace (Cubit::_tc_Many, 0, CORBA_TRUE); - - if (this->env_.exception () != 0) - { - this->print_exception ("DII request result type"); - CORBA::release (req); - return; - } - - // Make the invocation, verify the result - - req->invoke (); - - if (req->env ()->exception () != 0) - { - this->print_exception ("DII invoke sending struct", *req->env ()); - CORBA::release (req); - return; - } - - result = *(Cubit::Many *) req->result ()->value ()->value (); - - if (result.o != 27 || result.l != 125 || result.s != -343) - ACE_ERROR ((LM_ERROR, "DII cube_struct -- bad results\n")); - else - ACE_DEBUG ((LM_DEBUG, "DII cube_struct ... success!!")); - - CORBA::release (req); -} - -void -Cubit_Client::print_stats (const char *call_name, ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time) -{ - double tmp; - - ACE_DEBUG ((LM_DEBUG, - "%s:\n", - call_name)); - - if (this->call_count_ > 0 && this->error_count_ == 0) - { - tmp = 1000 / elapsed_time.real_time; - - elapsed_time.real_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.user_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.system_time *= ACE_ONE_SECOND_IN_MSECS; - - elapsed_time.real_time /= this->call_count_; - elapsed_time.user_time /= this->call_count_; - elapsed_time.system_time /= this->call_count_; - - tmp = 1000 / elapsed_time.real_time; - - ACE_DEBUG ((LM_DEBUG, - "\treal_time\t= %0.06f ms, \n\t" - "user_time\t= %0.06f ms, \n\t" - "system_time\t= %0.06f ms\n" - "\t%0.00f calls/second\n", - elapsed_time.real_time < 0.0? 0.0:elapsed_time.real_time, - elapsed_time.user_time < 0.0? 0.0:elapsed_time.user_time, - elapsed_time.system_time < 0.0? 0.0:elapsed_time.system_time, - tmp < 0.0? 0.0 : tmp)); - } - else - { - ACE_ERROR ((LM_ERROR, "\tNo time stats printed. Call count zero or error ocurred.\n")); - } - - ACE_DEBUG ((LM_DEBUG, - "\t%d calls, %d errors\n", - this->call_count_, - this->error_count_)); -} - -// Execute client example code. - -int -Cubit_Client::run (void) -{ - u_int i; - - ACE_Profile_Timer timer; - ACE_Profile_Timer::ACE_Elapsed_Time elapsed_time; - - // ACE_Time_Value before; - - // We start an ACE_Profile_Timer here... - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_short (i); - this->cube_octet (i); - this->cube_long (i); - this->cube_struct (i); - } - - // stop the timer. - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube average call", elapsed_time); - - -#if 0 // this test is segfaulting, comment for now. - // Simple test for DII: call "cube_struct". (It's not timed since - // the copious mallocation of DII would bias numbers against typical - // stub-based calls). - - timer.start (); - - this->call_count_ = 0; - this->error_count_ = 0; - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_struct_dii (); - } - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_struct_dii call", elapsed_time); - - // ------------------> - // Two more tests, using the "cube_union" function - - // unions using stubs - timer.start (); - - this->call_count_ = 0; - this->error_count_ = 0; - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_union_stub (); - } - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_union_stub call", elapsed_time); - - // union DII - timer.start (); - - this->call_count_ = 0; - this->error_count_ = 0; - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_union_dii (); - } - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_union_dii call", elapsed_time); -#endif - if (this->exit_later_) - { - this->cubit_->please_exit (this->env_); - this->print_exception ("server, please ACE_OS::exit", this->env_); - } - - return this->error_count_ == 0 ? 0 : 1; -} - -Cubit_Client::~Cubit_Client (void) -{ - // Free resources - CORBA::release (this->factory_); - CORBA::release (this->cubit_); -} - -int -Cubit_Client::init (int argc, char **argv) -{ - this->argc_ = argc; - this->argv_ = argv; - - // Retrieve the ORB. - this->orb_ptr_ = CORBA::ORB_init (this->argc_, - this->argv_, - 0, - this->env_); - - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - - if (this->env_.exception () != 0) - { - this->print_exception ("ORB initialization"); - return -1; - } - - if (this->cubit_key_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: must specify an object reference using -k <key>\n", - this->argv_[0]), - -1); - - // Retrieve a factory objref. - char ior[BUFSIZ]; - sprintf ( ior, "cool-tcp://%s:%d", this->hostname_, this->portnum_ ); - - ACE_DEBUG ((LM_DEBUG, "ior is \"%s\"\n", ior)); - - COOL::EOABindingData bindingData (ior); - - this->factory_ = Cubit_Factory::_bind(bindingData, this->env_); - - // this->objref_ = Cubit_Factory::_bind (this->hostname_, - // this->portnum_, - // this->cubit_factory_key_, - // this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("Cubit_Factory::_bind"); - return -1; - } - - if (CORBA::is_nil (this->factory_) == CORBA_TRUE) - ACE_ERROR_RETURN ((LM_ERROR, - " _bind returned null object for host (%s), port (%d)\n", - this->hostname_, - this->portnum_), - -1); - - // Narrow the CORBA::Object reference to the stub object, checking - // the type along the way using _is_a. There is really no need to - // narrow <objref> because <_bind> will return us the - // <Cubit_Factory> pointer. However, we do it so that we can - // explicitly test the _narrow function. - -//this->factory_ = Cubit_Factory::_narrow (this->objref_, this->env_); - - //CORBA::release (this->objref_); - // this->objref_->Release (); - - // if (this->factory_ == 0) - // ACE_ERROR_RETURN ((LM_ERROR, - // " (%P|%t) Unable to narrow object reference to a Cubit_Factory_ptr.\n"), - // -1); - - // Now retrieve the Cubit obj ref corresponding to the key. - this->cubit_ = - this->factory_->make_cubit (this->cubit_key_, this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("make_cubit"); - return -1; - } - - if (CORBA::is_nil (this->cubit_)) - ACE_ERROR_RETURN ((LM_ERROR, - "null cubit objref returned by factory\n"), - -1); - - return 0; -} - -void Cubit_Client::print_exception (const char * str, - const CORBA_Environment &env) -{ - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - - if (ex) - { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s: %s.\n", str, (const char *) msg); - } - else - { - fprintf(stderr, "%s: Unknown user exception.\n", str); - } -} - - - - -// This function runs the test. - -int -main (int argc, char **argv) -{ - Cubit_Client cubit_client; - - if (cubit_client.init (argc, argv) == -1) - return 1; - else - return cubit_client.run (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Env_Value<unsigned long>; -template class ACE_Env_Value<unsigned short>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Env_Value<unsigned long> -#pragma instantiate ACE_Env_Value<unsigned short> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/client.h b/TAO/tests/Cubit/COOL/IDL_Cubit/client.h deleted file mode 100644 index 94cc36a14bd..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/client.h +++ /dev/null @@ -1,128 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// clnt.h -// -// = DESCRIPTION -// This class implements a simple "cube" CORBA client for the Cubit -// example using stubs generated by the TAO ORB IDL compiler. -// -// = AUTHORS -// Copyright 1994-1995 by Sun Microsystems Inc. -// and -// Aniruddha Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "cubit.H" - -class Cubit_Client - // = TITLE - // Defines a class that encapsulates behaviour of the Cubit client - // example. Provides a better understanding of the logic in an - // object oriented way. - // - // = DESCRIPTION - // This class declares an interface to run the example client for - // Cubit CORBA server. All the complexity for initializing the - // server is hidden in the class. Just the run() interface is needed. -{ -public: - // = Constructor and destructor. - Cubit_Client (void); - ~Cubit_Client (void); - - int run (void); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - - void print_exception (const char * str, - const CORBA_Environment &env=Cubit_Client::env_); - -private: - int func (u_int i); - // simple function that returns the substraction of 117 from the parameter. - - int parse_args (void); - // Parses the arguments passed on the command line. - - void print_stats (const char *call_name, ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time); - // prints the time stats - - void cube_union_stub (void); - // Exercise the union. Cube a union. - - void cube_union_dii (void); - // Exercise the union using dii. - - void cube_struct (int i); - // calculate the cube from a struct. - - void cube_long (int i); - // calculate the cube from a long - - void cube_octet (int i); - // Cube an octet - - void cube_short (int i); - // Cube a short. - - void cube_sequence (int i); - // Cube a sequence. - - void cube_struct_dii (void); - // Cube the numbers in a struct - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - const char *cubit_factory_key_; - // Key of factory obj ref. - - char *cubit_key_; - // Key of the obj ref to be retrieved via the factory. - - char *hostname_; - // Hostname of server. - - CORBA::UShort portnum_; - // default port number of server. - - u_int loop_count_; - // Number of times to do the cube operations. - - int exit_later_; - // Flag to tell server to not exit immediately - - Cubit_Factory_ptr factory_; - // factory pointer for cubit. - - CORBA::Object_ptr objref_; - // storage of the factory objref - - static CORBA::Environment env_; - // Environment variable - - Cubit_ptr cubit_; - // Cubit obj ref - - CORBA::ORB_ptr orb_ptr_; - // Remember our orb - - u_int call_count_; - // # of calls made to functions - - u_int error_count_; - // # of errors incurred in the lifetime of the application. -}; diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit.idl b/TAO/tests/Cubit/COOL/IDL_Cubit/cubit.idl deleted file mode 100644 index 9ddc2d8954f..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit.idl +++ /dev/null @@ -1,71 +0,0 @@ -// $Id$ - -interface Cubit - // = TITLE - // Defines an interface that encapsulates operations that cube - // numbers. - // - // = DESCRIPTION - // This interface encapsulates operations that cube - // octets, shorts, longs, structs and unions. - -{ - octet cube_octet (in octet o); - // cube an octet - - short cube_short (in short s); - // cube a short - - long cube_long (in long l); - // cube a long - - struct Many - { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - // Cube a struct - - enum discrim - { - e_0th, - e_1st, - e_2nd, - e_3rd - }; - // Enumeration of the different elements in a union. - - union oneof switch (discrim) - { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - Many cm; - - // default: - // Many cm; - }; - // Union of different types. - - oneof cube_union (in oneof values); - // cube a union. - - oneway void please_exit (); - // shutdown the application. -}; - -interface Cubit_Factory - // = TITLE - // Creates Cubit objects -{ - Cubit make_cubit (in string key); -}; diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.cpp b/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.cpp deleted file mode 100644 index cf4a3c99630..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// cubit_i.cpp -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "cubit_i.h" -#include <api/api.H> -#include <api/binding.H> -#include <corba/eoa.H> -#include <corba/eorb.H> - -extern void print_exception (const CORBA_Environment &env, const char * str); - -// Constructor - -Cubit_Factory_i::Cubit_Factory_i (const char *key, int numobjs) -{ - // Create implementation object with user specified key. - - this->numobjs_ = numobjs; - this->my_cubit_ = new Cubit_i_ptr [this->numobjs_]; - - static char obj_str [MAXNAMELEN]; - - for (u_int i = 0; i < this->numobjs_; i++) - { - ACE_OS::memset (obj_str, '\0', MAXNAMELEN); - ACE_OS::sprintf (obj_str, "key%d", i); - - my_cubit_[i] = new Cubit_i (obj_str); - - if (my_cubit_[i] == 0) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable to create implementation object%d\n", - i)); - - } -} - -// Destructor - -Cubit_Factory_i::~Cubit_Factory_i (void) -{ - delete [] this->my_cubit_; -} - -Cubit_ptr -Cubit_Factory_i::make_cubit (const char *key, CORBA::Environment &env) -{ - Cubit_ptr cb = 0; - - for (size_t i = 0; i < this->numobjs_; i++) - { - const char *obj_str = this->my_cubit_[i]->_get_name (); - - // Keys matched. - if (!ACE_OS::strcmp (obj_str, key)) - { - COOL_bind(*(this->my_cubit_ [i]), cb, env); - if (env.exception() != 0) - print_exception (env, "COOL_bind"); - // return Cubit::_duplicate (this->my_cubit_ [i]); - return cb; - } - } - - return Cubit::_nil (); -} - -// Constructor - -Cubit_i::Cubit_i (const char *obj_name) - // : POA_Cubit (obj_name) -{ - obj_name_ = ACE_OS::strdup (obj_name); -} - -const char * -Cubit_i::_get_name (void) -{ - return this->obj_name_; -} - -// Destructor - -Cubit_i::~Cubit_i (void) -{ -} - -// Cube an octet - -CORBA::Octet -Cubit_i::cube_octet (CORBA::Octet o, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return o * o * o; -} - -// Cube a short. - -CORBA::Short -Cubit_i::cube_short (CORBA::Short s, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return s * s * s; -} - -// Cube a long - -CORBA::Long -Cubit_i::cube_long (CORBA::Long l, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return l * l * l; -} - -// Cube a struct - -Cubit::Many -Cubit_i::cube_struct (const Cubit::Many &values, - CORBA::Environment &env) -{ - Cubit::Many temp; - - ACE_UNUSED_ARG (env); - temp.o = values.o * values.o * values.o; - temp.s = values.s * values.s * values.s; - temp.l = values.l * values.l * values.l; - - return temp; -} - -// Cube a union - -Cubit::oneof -Cubit_i::cube_union (const Cubit::oneof &values, - CORBA::Environment &env) -{ - Cubit::oneof temp; - - ACE_UNUSED_ARG (env); - switch (values._d ()) - { - case Cubit::e_0th: - temp.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - temp.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - temp.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - temp._d (values._d ()); // set the discriminant - // use the read/write accessor - temp.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o; - temp.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s; - temp.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l; - - } - return temp; -} - -// Shutdown. - -void Cubit_i::please_exit (CORBA::Environment &env) -{ - // Macro to avoid "warning: unused parameter" type warning. - ACE_UNUSED_ARG (env); - - ACE_DEBUG ((LM_DEBUG, "I've been asked to shut down...")); - thisCapsule->boa()->shutdown(); - - CORBA_BOA::deactivate_object(this, env); -} diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.h b/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.h deleted file mode 100644 index 9db23e7dbb6..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.h +++ /dev/null @@ -1,109 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// cubit_i.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (_CUBIT_I_HH) -#define _CUBIT_I_HH - -#include "ace/ACE.h" - -#include <api/api.H> -#include <api/binding.H> -#include <corba/eoa.H> -#include <corba/eorb.H> - -extern COOL_CurrentCapsule* thisCapsule; - -#include "cubit.H" -#include "sk_cubit.H" - -// Forward declarations -class Cubit_i; - -// Typedefs. -typedef Cubit_i *Cubit_i_ptr; -typedef Cubit_i_ptr Cubit_i_ref; - -class Cubit_i - // = TITLE - // Illustrates how to integrate a servant with the - // generated skeleton. - // = DESCRIPTION - // Implementation of the cubit example at the servant side. - // Cubes an octet, short, long, struct and union. -{ -public: - Cubit_i (const char *obj_name = 0); - // Constructor - - ~Cubit_i (void); - // Destructor - - virtual CORBA::Octet cube_octet (CORBA::Octet o, - CORBA::Environment &env); - // Cube an octet - - virtual CORBA::Short cube_short (CORBA::Short s, - CORBA::Environment &env); - // Cube a short - - virtual CORBA::Long cube_long (CORBA::Long l, - CORBA::Environment &env); - // Cube a long - - virtual Cubit::Many cube_struct (const Cubit::Many &values, - CORBA::Environment &env); - // Cube a struct. - - virtual Cubit::oneof cube_union (const Cubit::oneof &values, - CORBA::Environment &env); - // Cube a union. - - virtual void please_exit (CORBA::Environment &env); - // Shutdown routine. - - const char *_get_name (void); - - private: - const char * obj_name_; -}; - - -class Cubit_Factory_i; - -typedef Cubit_Factory_i *Cubit_Factory_i_ptr; - -class Cubit_Factory_i - // =TITLE - // Cubit_Factory_i - // - // DESCRIPTION - // factory object returning the cubit objrefs -{ -public: - Cubit_Factory_i (const char *key, int numobjs); - // constructor - - ~Cubit_Factory_i (void); - // destructor - - virtual Cubit_ptr make_cubit (const char *key, CORBA::Environment &env); - // make the cubit object whose key is "key" - -private: - Cubit_i_ptr *my_cubit_; - u_int numobjs_; -}; - -#endif /* _CUBIT_I_HH */ diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/server.cpp b/TAO/tests/Cubit/COOL/IDL_Cubit/server.cpp deleted file mode 100644 index 6a787fe7e93..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/server.cpp +++ /dev/null @@ -1,149 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// svr.cpp -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" - -#include "cubit_i.h" - -#include <api/binding.H> -#include <api/api.H> -#include "cubit.H" -#include "sk_cubit.H" -#include "sk_cubit.C" - -void print_exception (const CORBA_Environment &env, - const char * str) -{ - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - - if (ex) - { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s: %s.\n", str, (const char *) msg); - } - else - { - fprintf(stderr, "Unknown user exception.\n"); - } -} - - -// Global Variables -static int num_of_objs = 1; - -u_int _debug_level = 0; - -// Parses the command line arguments and returns an error status - -static int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, "dn:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - _debug_level++; - break; - case 'n': // number of cubit objects we hold - num_of_objs = ACE_OS::atoi (get_opts.optarg); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n] <num of cubit objects>" - "\n", argv [0]), 1); - } - - return 0; // Indicates successful parsing of command line -} - -// Standard command line parsing utilities used. - -int -main (int argc, char *argv[]) -{ - CORBA::Environment env; - - COOL::EOA::bind(argv[1], env); - if (env.exception()) { - ACE_DEBUG ((LM_ERROR, "Impossible to bind the ORB to the description:%s\n", argv[1])); - return -1; - } - - CORBA::ORB_ptr orb_ptr = CORBA::ORB_init (argc, argv, 0, env); - - if (env.exception () != 0) - { - print_exception (env, "ORB init"); - return 1; - } - - // Initialize the Object Adapter - CORBA_BOA_ptr oa_ptr = orb_ptr->OA_init (argc, argv, 0, env); - - if (env.exception() != 0) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - // Parse remaining command line and verify parameters. - parse_args (argc, argv); - - // create a factory implementation - Cubit_Factory_ptr factory; - Cubit_Factory_i *factory_i; - COOL::EOABindingData bindingData; - - ACE_NEW_RETURN (factory_i, Cubit_Factory_i ("factory", num_of_objs), 1); - - COOL_bind (*factory_i, factory, bindingData, env); - - if (_debug_level > 0) - { - // Stringify the objref we'll be implementing, and print it to - // stdout. Someone will take that string and give it to a - // client. Then release the object. - - CORBA::String str; - - str = orb_ptr->object_to_string (factory, env); - - if (env.exception () != 0) - { - print_exception (env, "object_to_string"); - return -1; - } - - ACE_OS::puts ((char *) str); - ACE_OS::fflush (stdout); - - ACE_DEBUG ((LM_DEBUG, "listening as object '%s'\n", str)); - } - - // Handle requests for this object until we're killed, or one of the - // methods asks us to exit. - ACE_DEBUG ((LM_DEBUG, "Entering boa->run ().\n")); - oa_ptr->run (); - - return 0; -} diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/tmplinst.cpp b/TAO/tests/Cubit/COOL/IDL_Cubit/tmplinst.cpp deleted file mode 100644 index f5cb1888b55..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/tmplinst.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// -// $Id$ -// - -// The contents of this file REALLY should be generated by the IDL -// compiler, but that functionality isn't available yet. - -#include "cubit.H" - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_Unbounded_Sequence<long>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_Unbounded_Sequence<long> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/Makefile b/TAO/tests/Cubit/COOL/MT_Cubit/Makefile deleted file mode 100644 index 53b76a30af3..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/Makefile +++ /dev/null @@ -1,271 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the CHORUS COOL Cubit tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -IDL_SRC = cubit.cpp cubit.H sk_cubit.C sk_cubit.H - -SRC = $(IDL_SRC) cubit_impl.cpp server.cpp client.cpp Task_Client.cpp Util_Thread.cpp - -SVR_OBJS = cubit_impl.o server.o cubit.o - -CLT_OBJS = Task_Client.o client.o cubit.o Util_Thread.o - -LDLIBS = -lOrb-mt - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.nonested.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.lib.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.bin.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# CHORUS related macros and target settings. -#---------------------------------------------------------------------------- - -CHORUS_BINDIR = $(CHORUS_ROOT)/bin -CHORUS_LIBDIR = $(CHORUS_ROOT)/lib -CHORUS_INCDIR = $(CHORUS_ROOT)/include - -CPPFLAGS += -I$(CHORUS_INCDIR) -I$(CHORUS_ROOT) -LDFLAGS += -L$(CHORUS_LIBDIR) -R $(CHORUS_LIBDIR) -L$(ACE)/ace -IDLFLAGS = --stub-header --stub-impl --skeleton-header --skeleton-impl --no-local --no-any --binding Cubit Cubit_Impl - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: $(IDL_SRC) server client - -$(IDL_SRC): cubit.idl - $(CHORUS_BINDIR)/chic $(IDLFLAGS) cubit.idl - -/bin/mv cubit.C cubit.cpp - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf cubit.cpp cubit.H sk_cubit.C sk_cubit.H server client - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit.o .shobj/cubit.so: cubit.cpp cubit.H -.obj/sk_cubit.o .shobj/sk_cubit.so: sk_cubit.C -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i cubit_impl.h \ - cubit.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/cool.H -.obj/server.o .shobj/server.so: server.cpp cubit.H cubit_impl.h sk_cubit.H sk_cubit.C \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i -.obj/client.o .shobj/client.so: client.cpp \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/api/api.H \ - cubit.H Task_Client.h -.obj/Task_Client.o .shobj/Task_Client.so: Task_Client.cpp Task_Client.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/api/api.H \ - cubit.H - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/README b/TAO/tests/Cubit/COOL/MT_Cubit/README deleted file mode 100644 index 31e1b9fc72a..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/README +++ /dev/null @@ -1,149 +0,0 @@ -The MT-Cubit example for the CHORUS COOL ORB --------------------------------------------- - -Compiling ---------- - -Setup the CHORUS COOL environment variables before compiling, the -following is an example. You would typically want this in the shells' -resource file (e.g. .cshrc.mine). The example provided is for a C -shell. - - setenv CHORUS_ROOT /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt - set path = ($path /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/bin) - setenv LD_LIBRARY_PATH /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/lib:$LD_LIBRARY_PATH - setenv MANPATH /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/man:$MANPATH - -Makefiles are provided. Use make to compile. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - -server: -------- - -./server <tpr | tpool> cool-tcp://<THIS_HOSTNAME>:<THIS_HOST_PORT> -v -cool-tcp -cool-iiop - -tpr : this indicates to the server to use the Thread Per Request concurrency model. - -tpool : this indicates to the server to use the Thread Pool concurrency model. - -THIS_HOSTNAME : the name of the host that the server will be running on. This is useful - if you want to specifya different interface (e.g. ATM, 100Mbit Ethernet) - -THIS_HOST_PORT: is the port number at which the server will start the high - priority servant. The low priority servant will be created at - (THIS_HOST_PORT+1). - -The server will print the IOR of the high and low priority servants, -but it is not required by the client. - -client: -------- - -./client [-n <LOOP_COUNT>] [-t <NUM_THREADS>] [-h SERVER_HOSTNAME] [-p <SERVER_PORT_NUM>] -cool-tcp -cool-iiop - -<SERVER_HOSTNAME>: is the hostname of the server. - -<SERVER_PORT_NUM>: is the port number of the servant. - -Based on the SERVER_HOSTNAME and the SERVER_PORT_NUM, the client constructs -the IOR's for the high priority servant and the low priority servant. - -<LOOP_COUNT> : is the number of times the group of CORBA twoway calls are to - be made. The group consists of the following calls: cube_octet(), cube_short(), - cube_long() and cube_struct(). The default is 100 loops (i.e. 400 calls are made). - -<NUM_THREADS> : is the total number of concurrent clients to be - created. One of these clients will be a high priority client (and thus - send requests to the high priority servant), and the rest will have - low priority. - -The high priority client makes requests at 20Hz, and the low priority -clients make requests at 10Hz. - -Results -------- - -The client prints the latency observed by the high priority client, -and the average latency observed by the low priority client. - -An Example ----------- - - On the host lambada.cs.wustl.edu : - - % ./server tpool cool-tcp://lambada.cs.wustl.edu:3000 -v -cool-tcp -cool-iiop - - On the host merengue.cs.wustl.edu : - - % ./client -t 2 -h lambada.cs.wustl.edu -p 3000 -cool-tcp -cool-iiop - - The output of the client program may look like this: - - (5) Everyone's done, here I go!! - (4) Threads have bound, utilization test started - (9) Everyone's done, here I go!! - (8) Everyone's done, here I go!! - (6) Everyone's done, here I go!! - (7) Everyone's done, here I go!! - cube average call ACE_OS::time = 20.917016 msec, 47.807966 calls/second - (5) My latency was 20.917016 - 5 calls, 0 errors - cube average call ACE_OS::time = 19.299501 msec, 51.814811 calls/second - (8) My latency was 19.299501 - cube average call ACE_OS::time = 19.262436 msec, 51.914514 calls/second - 5 calls, 0 errors - (9) My latency was 19.262436 - 5 calls, 0 errors - cube average call ACE_OS::time = 15.101540 msec, 66.218412 calls/second - (6) My latency was 15.101540 - 5 calls, 0 errors - cube average call ACE_OS::time = 10.320359 msec, 96.895858 calls/second - (7) My latency was 10.320359 - 5 calls, 0 errors - Test done. - High priority client latency : 20.917016 msec, jitter: 36.582330 msec - Low priority client latency : 15.995959 msec, jitter: 527.515277 msec - utilization task performed 435 computations - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.cpp deleted file mode 100644 index 5b2c2c067f2..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.cpp +++ /dev/null @@ -1,523 +0,0 @@ -#include "Task_Client.h" - -#if defined (VXWORKS) -#include "my_time.h" -#endif /* defined (VXWORKS) */ - -int stats(int data[], int n) -{ - int i, j, key, sum, mean; - - if( n < 2 ) - return 0; - - /* sort the samples */ - for(j=1; j<n; j++) { - key = data[j]; - i = j - 1; - while( i >= 0 && data[i] > key ) { - data[i+1] = data[i]; - i--; - } - data[i+1] = key; - } - - sum = 0; - for(i=0; i<n; i++) { - sum += data[i]; - } - - if( (n%2) == 0 ) - mean = (data[n/2-1] + data[n/2]) / 2; - else - mean = data[n/2]; - - return sum/n; -} - -Task_State::Task_State (int argc, char **argv) - : start_count_ (0), - loop_count_ (5), - thread_count_ (5), - base_port_ (5000), - datatype_ (CB_OCTET), - argc_ (argc), - argv_ (argv), - thread_per_rate_ (0), - global_jitter_array_ (0) -{ - ACE_OS::strcpy (server_host_, "localhost"); - ACE_Get_Opt opts (argc, argv, "h:n:t:p:d:r"); - int c; - int datatype; - - while ((c = opts ()) != -1) - switch (c) { - case 'r': - thread_per_rate_ = 1; - break; - case 'd': - datatype = ACE_OS::atoi (opts.optarg); - switch (datatype) - { - case CB_OCTET: - ACE_DEBUG ((LM_DEBUG, "Testing Octets\n")); - datatype_ = CB_OCTET; - break; - case CB_LONG: - ACE_DEBUG ((LM_DEBUG, "Testing Longs\n")); - datatype_ = CB_LONG; - break; - case CB_STRUCT: - ACE_DEBUG ((LM_DEBUG, "Testing Structs\n")); - datatype_ = CB_STRUCT; - break; - case CB_SHORT: - default: - datatype_ = CB_SHORT; - ACE_DEBUG ((LM_DEBUG, "Testing Shorts\n")); - break; - } - continue; - case 'h': - ACE_OS::strcpy (server_host_, opts.optarg); - continue; - case 'p': - base_port_ = ACE_OS::atoi (opts.optarg); - continue; - case 'n': // loop count - loop_count_ = (u_int) ACE_OS::atoi (opts.optarg); - continue; - case 't': - thread_count_ = (u_int) ACE_OS::atoi (opts.optarg); - continue; - case '?': - default: - ACE_DEBUG ((LM_DEBUG, "usage: %s" - "[-d datatype Octet=0, Short=1, Long=2, Struct=3]" - " [-n num_calls]" - " [-h server_hostname]" - " [-p server_port_num]" - " [-t num_threads]" - "\n", argv [0])); - } - // thread_count_ + 1 because there is one utilization thread also - // wanting to begin at the same time the clients begin.. - ACE_NEW (barrier_, ACE_Barrier (thread_count_ + 1)); - ACE_NEW (latency_, double [thread_count_]); - ACE_NEW (global_jitter_array_, double *[thread_count_]); - ACE_NEW (ave_latency_, int [thread_count_]); -} - -Client::Client (Task_State *ts) - : ACE_Task<ACE_MT_SYNCH> (ACE_Thread_Manager::instance ()), - ts_ (ts) -{ - -} - -void -Client::put_ave_latency (int ave_latency, u_int thread_id) { - ts_->lock_.acquire (); - ts_->ave_latency_[thread_id] = ave_latency; - ts_->lock_.release (); -} - -void -Client::put_latency (double *jitter, double latency, u_int thread_id) -{ - ts_->lock_.acquire (); - ts_->latency_[thread_id] = latency; - ACE_DEBUG ((LM_DEBUG, "(%t) My latency was %f\n", latency)); - ts_->global_jitter_array_ [thread_id] = jitter; - ts_->lock_.release (); -} - -double -Client::get_high_priority_latency (void) -{ - return (double) ts_->latency_ [0]; -} - -double -Client::get_low_priority_latency (void) -{ - double l = 0; - - for (u_int i = 1; i < ts_->start_count_; i++) - l += (double) ts_->latency_[i]; - return l / (double) (ts_->start_count_ - 1); -} - -int -Client::get_latency (u_int thread_id) -{ - return ts_->ave_latency_ [thread_id]; -} - -double -Client::get_high_priority_jitter () { - double jitter = 0; - double average = get_high_priority_latency (); - for (u_int i = 0; i < ts_->loop_count_; i ++) - { - double difference = ts_->global_jitter_array_ [0][i] - average; - jitter += difference * difference; - } - return sqrt (jitter / (double) (ts_->loop_count_ - 1)); -} - -double -Client::get_low_priority_jitter () { - double jitter = 0; - double average = get_low_priority_latency (); - for (u_int j = 1; j < ts_->start_count_; j ++) - for (u_int i = 0; i < ts_->loop_count_; i ++) - { - double difference = ts_->global_jitter_array_ [j][i] - average; - jitter += difference * difference; - } - return (double) (jitter / ((ts_->loop_count_* (ts_->start_count_ - 1)) - 1)); -} - -int -Client::svc (void) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) Thread created\n")); - u_int thread_id; - Cubit_ptr cb; - char ior [1024]; - double frequency; - CORBA::ORB_ptr orb_ptr; - - { - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, ts_->lock_, -1); - - thread_id = ts_->start_count_; - ts_->start_count_++; - - if (ts_->thread_per_rate_ == 0) - { - if (thread_id == 0) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) Im the high priority client, my id is %d.\n", - thread_id)); - ::sprintf (ior, - "cool-tcp://%s:%d", - ts_->server_host_, - ts_->base_port_); - frequency = CB_HIGH_PRIORITY_RATE; - } - else - { - ACE_DEBUG ((LM_DEBUG, - "(%t) Im a low priority client, my id is %d\n", - thread_id)); - ::sprintf (ior, - "cool-tcp://%s:%d", - ts_->server_host_, - ts_->base_port_);// + thread_id); - frequency = CB_LOW_PRIORITY_RATE; - } - } - else - { - switch (thread_id) - { - case CB_40HZ_CONSUMER: - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "cool-tcp://%s:%d", ts_->server_host_, ts_->base_port_); - frequency = CB_40HZ_CONSUMER_RATE; - break; - case CB_20HZ_CONSUMER: - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "cool-tcp://%s:%d", ts_->server_host_, ts_->base_port_);//+1); - frequency = CB_20HZ_CONSUMER_RATE; - break; - case CB_10HZ_CONSUMER: - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "cool-tcp://%s:%d", ts_->server_host_, ts_->base_port_);//+2); - frequency = CB_10HZ_CONSUMER_RATE; - break; - case CB_5HZ_CONSUMER: - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "cool-tcp://%s:%d", ts_->server_host_, ts_->base_port_);//+3); - frequency = CB_5HZ_CONSUMER_RATE; - break; - case CB_1HZ_CONSUMER: - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "cool-tcp://%s:%d", ts_->server_host_, ts_->base_port_);//+4); - frequency = CB_1HZ_CONSUMER_RATE; - break; - default: - ACE_DEBUG ((LM_DEBUG, "(%t) Invalid Thread ID.\n", thread_id)); - } - } /* else */ - - ACE_DEBUG ((LM_DEBUG, "Using ior = %s\n", ior)); - - CORBA::Object_ptr objref = CORBA::Object::_nil (); - CORBA::Environment env; - - orb_ptr = CORBA::ORB_init (ts_->argc_, ts_->argv_, 0, env); - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR,"%s:ORB initialization", env.exception ()), 2); - - // CORBA_BOA_ptr oa_ptr = orb_ptr->OA_init (ts_->argc_, ts_->argv_, 0, env); - // - // if (oa_ptr == 0) - // ACE_ERROR_RETURN ((LM_ERROR, - // " (%P|%t) Unable to initialize the POA.\n"), - // 1); - - - // - // Initialise client's binding to an - // arbitrary cubit server (at some host) - // - COOL::EOABindingData bindingData (ior); - - cb = Cubit::_bind(bindingData, env); - - - - // objref = orb_ptr->string_to_object ((CORBA::String) ior, env); - - // if (env.exception () != 0) - // ACE_ERROR_RETURN ((LM_ERROR, - // "%s:string2object failed. Supply valid IOR with the -O option\n", - // env.exception ()), 2); - - // if (CORBA::is_nil (objref) == CORBA_TRUE) - // ACE_ERROR_RETURN ((LM_ERROR, - // "%s: must identify non-null target objref\n", - // ts_->argv_ [0]), - // 1); - - // Narrow the CORBA::Object reference to the stub object, checking - // the type along the way using _is_a. - // cb = Cubit::_narrow (objref); - - if ( (CORBA::is_nil (cb) == CORBA_TRUE) || (env.exception () != 0)) - { - ACE_ERROR_RETURN ((LM_ERROR, "%s:Create cubit failed\n", env.exception ()), 1); - } - ACE_DEBUG ((LM_DEBUG, "(%t) Binding succeeded\n")); - ACE_DEBUG ((LM_DEBUG, "(%t) Cb == %x\n", cb)); - - CORBA::String str; - - str = orb_ptr->object_to_string (cb, env); - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR, "object_to_string %s\n", env.exception ()), -1); - - ACE_OS::puts ((char *) str); - ACE_OS::fflush (stdout); - ACE_DEBUG ((LM_DEBUG, "Object Created at: '%ul'", cb)); - ACE_DEBUG ((LM_DEBUG, "connected to object '%s'", str)); - // if (cb->cube_short (2, env) == 8) // dummy call. - // ACE_DEBUG ((LM_DEBUG, "(%t) Made successful dummy call")); - } - - ACE_DEBUG ((LM_DEBUG, "(%t) Waiting for other threads to finish binding..\n")); - ts_->barrier_->wait (); - ACE_DEBUG ((LM_DEBUG, "(%t) Everyone's done, here I go!!\n")); - - this->run_tests (cb, ts_->loop_count_, thread_id, ts_->datatype_, frequency); - - // Free resources - // CORBA::release (orb_ptr); - - return 0; -} - -int -Client::run_tests (Cubit_ptr cb, - u_int loop_count, - u_int thread_id, - Cubit_Datatypes datatype, - double frequency) -{ - CORBA::Environment env; - u_int i = 0; - u_int call_count = 0, error_count = 0; - double *my_jitter_array; - ACE_NEW_RETURN (my_jitter_array, double [ts_->loop_count_], 1); - - double latency = 0; - double sleep_time = (1/frequency) * (1000 * 1000); - double delta = 0; - // Make the calls in a loop. - - for (i = 0; i < loop_count; i++) - { -#if defined (VXWORKS) - TimeStamp(&start[i]); -#else - ACE_Profile_Timer timer; - ACE_Time_Value tv (0, (long int) (sleep_time - delta)); - ACE_OS::sleep (tv); - timer.start (); -#endif /* defined (VXWORKS) */ - switch (datatype) - { - case CB_OCTET: - { - // Cube an octet. - CORBA::Octet arg_octet = func (i), ret_octet = 0; - - ret_octet = cb->cube_octet (arg_octet, env); - if (env.exception () != 0) - { - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - if (ex) - { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s.\n", (const char*) msg); - } - else - { - fprintf(stderr, "Unknown user exception.\n"); - } - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - } - - arg_octet = arg_octet * arg_octet * arg_octet; - - if (arg_octet != ret_octet) - { - ACE_DEBUG ((LM_DEBUG, "** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet)); - error_count++; - } - call_count++; - } - break; - - case CB_SHORT: - // Cube a short. - { - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - ret_short = cb->cube_short (arg_short, env); - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%s:Call failed\n", - env.exception ()), - 2); - - arg_short = arg_short * arg_short * arg_short; - - if (arg_short != ret_short) - { - ACE_DEBUG ((LM_DEBUG, "** cube_short(%d) (--> %d)\n", arg_short , ret_short)); - error_count++; - } - break; - } - // Cube a long. - - case CB_LONG: - { - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - ret_long = cb->cube_long (arg_long, env); - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - - arg_long = arg_long * arg_long * arg_long; - - if (arg_long != ret_long) - { - ACE_DEBUG ((LM_DEBUG, "** cube_long(%d) (--> %d)\n", arg_long , ret_long)); - error_count++; - } - break; - } - - case CB_STRUCT: - // Cube a "struct" ... - { - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - ret_struct = cb->cube_struct (arg_struct, env); - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - ACE_DEBUG ((LM_DEBUG, "**cube_struct error!\n")); - error_count++; - } - - break; - } - } - -#if defined (VXWORKS) - TimeStamp(&stop[i]); - elapsed_time[i] = DeltaTime(start[i], stop[i]); - delta = ( (0.4 * fabs (elapsed_time[i])) + (0.6 * delta) ); // pow(10,6) - latency += (double)elapsed_time[i]; -#else - timer.stop(); - ACE_Profile_Timer::ACE_Elapsed_Time et; - timer.elapsed_time (et); - delta = ((0.4 * fabs (et.real_time * (1000 * 1000))) + (0.6 * delta)); // pow(10,6) - latency += et.real_time; - my_jitter_array [i] = et.real_time * 1000; -#endif /* defined (VXWORKS) */ - } - -#if defined (VXWORKS) - int ave_latency = stats(elapsed_time, loop_count); - put_ave_latency(ave_latency, thread_id); -#endif - - if (call_count > 0) - { -#if !defined (VXWORKS) - if (error_count == 0) - { - - latency /= call_count; - - if (latency > 0) - { - ACE_DEBUG ((LM_DEBUG, "cube average call ACE_OS::time\t= %f msec, \t" - "%f calls/second\n", - latency * 1000, - 1 / latency)); - this->put_latency (my_jitter_array, latency * 1000, thread_id); - } - } -#endif /* !defined (VXWORKS) */ - ACE_DEBUG ((LM_DEBUG, "%d calls, %d errors\n", call_count, error_count)); - } - - // cb->please_exit (env); - return 0; -} diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.h b/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.h deleted file mode 100644 index 038f8a1db53..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.h +++ /dev/null @@ -1,162 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// Task_Client.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (TASK_CLIENT_H) -#define TASK_CLIENT_H - -#include "ace/Synch.h" -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "ace/Profile_Timer.h" -#include <math.h> -#include "api/api.H" - -#include "cubit.H" - -// Arbitrary generator used by the client to create the numbers to be -// cubed. -inline int func (unsigned i) { return i - 117; } - -// The various datatypes which the client and the server can exchange. -enum Cubit_Datatypes -{ - CB_OCTET, - CB_SHORT, - CB_LONG, - CB_STRUCT -}; - -const int CB_40HZ_CONSUMER = 0; -const int CB_20HZ_CONSUMER = 1; -const int CB_10HZ_CONSUMER = 2; -const int CB_5HZ_CONSUMER = 3; -const int CB_1HZ_CONSUMER = 4; - -const int CB_40HZ_CONSUMER_RATE = 40; -const int CB_20HZ_CONSUMER_RATE = 20; -const int CB_10HZ_CONSUMER_RATE = 10; -const int CB_5HZ_CONSUMER_RATE = 5; -const int CB_1HZ_CONSUMER_RATE = 1; - -const int CB_HIGH_PRIORITY_RATE = 20; -const int CB_LOW_PRIORITY_RATE = 10; - -class Task_State - // = TITLE - // Maintains state common to multiple Cubit clients - - // = DESCRIPTION - // This class maintains state which is common to the potentially - // multiple concurrent clients. - - -{ -public: - ACE_Barrier *barrier_; - // Barrier for the multiple clients to synchronize after - // binding to the servants. - - Task_State (int argc, char **argv); - // Constructor. Takes the command line arguments, which are - // later passed into ORB_init - - u_int start_count_; - // keeps a count of the number of clients started.. This - // count also serves as a thread-id. The first thread created - // gets an ID of 0, then 1, and so on.. - - u_int loop_count_; - // number of times to loop, making calls.. - - u_int thread_count_; - // number of concurrent clients to create.. - - u_int base_port_; - // this is the port at which the high priority servant is - // listening.. lower priority ports begin at base_port_ + 1 - - char server_host_ [1024]; - // Server hostname - - double *latency_; - // Array to store the latency for every client, indexed by - // thread-id. - - int *ave_latency_; - // Int array to store the latencies - - Cubit_Datatypes datatype_; - // Which datatype to use to make the calls - - ACE_Thread_Mutex lock_; - // lock to protect access to this object - - int argc_; - char **argv_; - // command line arguments - - u_int thread_per_rate_; - // Flag for the thread_per_rate test - - double **global_jitter_array_; - // this array stores the latency seen by each client for each - // request, to be used later to compute jitter - -}; - -class Client : public ACE_Task<ACE_MT_SYNCH> - // = TITLE - // The Cubit client. -{ -public: - Client (Task_State *ts); - // constructor, with a pointer to the common task state. - - virtual int svc (void); - // the thread function - - double get_high_priority_latency (void); - double get_low_priority_latency (void); - double get_high_priority_jitter (void); - double get_low_priority_jitter (void); - int get_latency (u_int thread_id); - // accessors to get the various measured quantities - - -private: - - int run_tests (Cubit_ptr, - unsigned int, - unsigned int, - Cubit_Datatypes, - double frequency); - // makes the calls to the servant - - void put_latency (double *jitter, - double latency, - unsigned int); - // Records the latencies in the Task_State - - void put_ave_latency (int latency, unsigned int); - // Records the latencies in the Task_State - - int parse_args (int, char **); - // parses the arguments - - Task_State *ts_; - // pointer to shared state - -}; - -#endif /* !defined (TASK_CLIENT_H) */ diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.cpp deleted file mode 100644 index a883a3537ec..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// $Id$ - -#include "Util_Thread.h" - -Util_Thread::Util_Thread (Task_State *ts, - ACE_Thread_Manager *thr_mgr) - : ACE_Task<ACE_MT_SYNCH> (thr_mgr), - done_ (0), - number_of_computations_ (0), - ts_ (ts) -{ -} - -int -Util_Thread::svc (void) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) Utilization Thread created, " - "waiting for threads to finish binding\n")); - - // Sumedh, please add comments here. - this->ts_->barrier_->wait (); - - ACE_DEBUG ((LM_DEBUG, - "(%t) Threads have bound, " - "utilization test started\n")); - - this->run_computations (); - return 0; -} - -double -Util_Thread::get_number_of_computations (void) -{ - return this->number_of_computations_; -} - -// Perform repeated prime factor computations on an arbitrary number -// and you thought your life was boring. :-) - -int -Util_Thread::run_computations (void) -{ - // Sumedh, isn't there a "ACE::is_prime()" method that we can reuse - // here? If this doesn't work right, can you please add a new - // method in class ACE so that we can leverage existing effort and - // prepare for the future? - - while (this->done_ == 0) - { - u_long original = CUBIT_ARBIT_NUMBER; - u_long n = original; - u_long test_done = 1; - u_long sqrt_n = (u_long) ceil (sqrt (n)); - u_long i; - - for (i = 2; i <= sqrt_n; i++) - while ((n % i) == 0) - { - n /= i; - test_done *= i; - } - - ACE_ASSERT (test_done * n == original); - - this->number_of_computations_ ++; - } - return 0; -} diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.h b/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.h deleted file mode 100644 index b336c11c2de..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.h +++ /dev/null @@ -1,45 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// Util_Thread.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "Task_Client.h" - -const int CUBIT_ARBIT_NUMBER = 2064885; - -class Util_Thread : public ACE_Task<ACE_MT_SYNCH> - // = TITLE - // The thread that computes utilization. -{ -public: - Util_Thread (Task_State *, - ACE_Thread_Manager *thr_mgr); - // constructor. - - virtual int svc (void); - // The thread entry point function. - - double get_number_of_computations (void); - // Gets the number of computations the thread was able to perform. - - int done_; - // Indicates whether we're done. - -private: - int run_computations (void); - // Run the computations. - - // Sumedh, please add comments here. - double number_of_computations_; - Task_State *ts_; -}; diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/client.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/client.cpp deleted file mode 100644 index 4ec478f6ea9..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/client.cpp +++ /dev/null @@ -1,224 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// client.cpp -// -// = AUTHOR -// Andy Gokhale, Brian Mendel, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "client.h" - -int -initialize (void) -{ -#if defined (VXWORKS) - hostAdd ("mv2604d", "130.38.183.132"); -#if defined (VME_DRIVER) - STATUS status = vmeDrv (); - if (status != OK) - printf ("ERROR on call to vmeDrv()\n"); - status = vmeDevCreate ("/vme"); - if (status != OK) - printf ("ERROR on call to vmeDevCreate()\n"); -#endif /* defined (VME_DRIVER) */ -#endif /* defined (VXWORKS) */ - - // Make sure we've got plenty of socket handles. This call will use - // the default maximum. - ACE::set_handle_limit (); - return 0; -} - -int -do_priority_inversion_test (Task_State &ts) -{ - // Create the clients - Client high_priority_client (&ts); - Client low_priority_client (&ts); - - // Create the daemon thread in its own <ACE_Thread_Manager>. - ACE_Thread_Manager thr_mgr; - - Util_Thread util_thread (&ts, &thr_mgr); - - ACE_Sched_Priority priority = - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - - // First activate the Utilization thread. It will wait until all - // threads have finished binding. - util_thread.activate (THR_BOUND, - 1, - 0, - priority); - - - // Now activate the high priority client. - - // @@ The ifdef here is temporarily placed here until - // I figure out how to map NT's thread priorities - // into pthread's priorities. -#if defined (ACE_THR_PRI_FIFO_DEF) - priority = ACE_THR_PRI_FIFO_DEF; -#else - priority = ACE_DEFAULT_THREAD_PRIORITY; -#endif - - if (high_priority_client.activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority) == -1) - - ACE_ERROR ((LM_ERROR, - "%p\n", - "activate failed")); - - // @@ Sumedh, can you please document why we need this VxWorks - // #ifdef? Is there a way to make this more general so we don't - // need the #ifdef? In other words, please check with David or - // Brian about this. - -#if !defined (VXWORKS) - priority = - ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); -#else - priority = 65; -#endif /* !defined (VXWORKS) */ - - ACE_DEBUG ((LM_DEBUG, - "Creating %d clients with low priority\n", - ts.thread_count_ - 1)); - - for (u_int i = 0; i < ts.thread_count_ - 1; i++) - { - // The first thread starts at min + 1, since the minimum - // priority thread is the utilization thread. - - // get the next higher priority - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - if (low_priority_client.activate (THR_BOUND, - 1, - 1, - priority) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "activate failed")); - } - // Wait for all the threads to exit. - ACE_Thread_Manager::instance ()->wait (); - -#if !defined (VXWORKS) - ACE_DEBUG ((LM_DEBUG, "Test done.\n" - "High priority client latency : %f msec, jitter: %f msec\n" - "Low priority client latency : %f msec, jitter: %f msec\n", - high_priority_client.get_high_priority_latency (), - high_priority_client.get_high_priority_jitter (), - low_priority_client.get_low_priority_latency (), - low_priority_client.get_low_priority_jitter ())); -#else - ACE_OS::printf ("Test done.\n" - "High priority client latency : %d usec\n" - "Low priority client latency : %d usec\n", - high_client.get_high_priority_latency (), - low_client.get_low_priority_latency ()); -#endif /* !defined (VXWORKS) */ - util_thread.done_ = 1; - thr_mgr.wait (); - cerr << "utilization task performed " - << util_thread.get_number_of_computations () - << " computations" - << endl; - - return 0; - -} - -int -do_thread_per_rate_test (Task_State &ts) -{ - // First activate the high priority client. - Client CB_40Hz_client (&ts); - Client CB_20Hz_client (&ts); - Client CB_10Hz_client (&ts); - Client CB_5Hz_client (&ts); - Client CB_1Hz_client (&ts); - - ACE_Sched_Priority priority = - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - - // VxWorks priority of 0 causes problems. - priority = 10; - ACE_DEBUG ((LM_DEBUG, "Creating 40 Hz client with priority %d\n", priority)); - if (CB_40Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - ACE_DEBUG ((LM_DEBUG, "Creating 20 Hz client with priority %d\n", priority)); - if (CB_20Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - ACE_DEBUG ((LM_DEBUG, "Creating 10 Hz client with priority %d\n", priority)); - if (CB_10Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - ACE_DEBUG ((LM_DEBUG, "Creating 5 Hz client with priority %d\n", priority)); - if (CB_5Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - ACE_DEBUG ((LM_DEBUG, "Creating 1 Hz client with priority %d\n", priority)); - if (CB_1Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - // Wait for all the threads to exit. - ACE_Thread_Manager::instance ()->wait (); - - ACE_OS::printf ("Test done.\n" - "40Hz client latency : %d usec\n" - "20Hz client latency : %d usec\n" - "10Hz client latency : %d usec\n" - "5Hz client latency : %d usec\n" - "1Hz client latency : %d usec\n", - CB_40Hz_client.get_latency (0), - CB_20Hz_client.get_latency (1), - CB_10Hz_client.get_latency (2), - CB_5Hz_client.get_latency (3), - CB_1Hz_client.get_latency (4)); - return 0; -} - -// This is the main routine of the client, where we create a high -// priority and a low priority client. we then activate the clients -// with the appropriate priority threads, and wait for them to -// finish. After they aer done, we compute the latency and jitter -// metrics and print them. - -int -main (int argc, char *argv []) -{ -#if defined (FORCE_ARGS) - int argc = 7; - char *argv[] = {"main", - "-d", - "3", // Data Type - "-t", - "10", // Thread Count - "-h", - "mv2604d"}; // Host name -#endif /* defined (FORCE_ARGS) */ - - Task_State ts (argc, argv); - if (ts.thread_per_rate_ == 0) - do_priority_inversion_test (ts); - else - do_thread_per_rate_test (ts); - return 0; -} diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/client.h b/TAO/tests/Cubit/COOL/MT_Cubit/client.h deleted file mode 100644 index dc355016ad1..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/client.h +++ /dev/null @@ -1,28 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// client.h -// -// = AUTHOR -// Andy Gokhale, Brian Mendel, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" - -#include "cubit.H" -#include "Task_Client.h" -#include "Util_Thread.h" - -#if defined (VME_DRIVER) -#include <hostLib.h> -extern "C" STATUS vmeDrv (void); -extern "C" STATUS vmeDevCreate (char *); -#endif /* defined (VME_DRIVER) */ - diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/cubit.idl b/TAO/tests/Cubit/COOL/MT_Cubit/cubit.idl deleted file mode 100644 index d9b38c34a2a..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/cubit.idl +++ /dev/null @@ -1,40 +0,0 @@ -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.cpp deleted file mode 100644 index 1f50e334099..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include "ace/ACE.h" -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) -{ - // ACE_DEBUG ((LM_DEBUG, "octet cubed is %d\n", o*o*o)); - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) { -} diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.h b/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.h deleted file mode 100644 index f6651687b88..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.h +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.H" - -class Cubit_Impl { - -public: - virtual CORBA_Octet cube_octet (CORBA_Octet o, CORBA_Environment &IT_env=_environment); - virtual CORBA_Short cube_short (CORBA_Short s, CORBA_Environment &IT_env=_environment); - virtual CORBA_Long cube_long (CORBA_Long l, CORBA_Environment &IT_env=_environment); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA_Environment &IT_env=_environment); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA_Environment &IT_env=_environment); - virtual void please_exit (CORBA_Environment &IT_env=_environment); -}; - - -#endif diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/server.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/server.cpp deleted file mode 100644 index 97bd79847bd..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/server.cpp +++ /dev/null @@ -1,160 +0,0 @@ -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** - -#include <api/binding.H> -#include <api/api.H> -#include <api/coolThreadPool.H> -#include <corba/eoa.H> -#include <corba/eorb.H> - -#include "cubit.H" -#include "cubit_impl.h" // server header file -#include "sk_cubit.H" -#include "sk_cubit.C" -#include "ace/OS.h" - -CORBA_BOA_ptr boa; - -int -create_servant (void *arg) -{ - // char name [1024]; - // int i = * (int *)arg; - // - // if (i == 0) - // strcpy (name, "HP_Cubit"); - // else - // strcpy (name, "LP_Cubit"); - - char ** argv = (char **) arg; - - CORBA_Environment env; - Cubit_ptr cubit; - Cubit_Impl cubit_impl; - - COOL_ThreadPool* MyPool_1; - u_int concurrencyModel = 0; - - if (strcmp (argv[1], "tpool") == 0) - { - // - // Defines a policy for using a pool of 20 threads. - // - concurrencyModel = THREAD_POOL; - ACE_DEBUG ((LM_DEBUG, "Using Thread Pool concurrency model\n")); - } - else if (strcmp (argv[1], "tpr") == 0) - { - // Defines policy to create a thread for each incoming - // request. - concurrencyModel = THREAD_PER_REQUEST; - ACE_DEBUG ((LM_DEBUG, "Using Thread Per Request concurrency model\n")); - } - else - { - ACE_ERROR ((LM_ERROR, "Concurrency model determination failed.\n")); - return -1; - } - - COOL_ThreadPoolControl poolCtl_1 (concurrencyModel, 1, 20, -1); - COOL_QueueControl qCtl; - - // Defines thread attributes for threads belonging to pools. - COOL_ThreadAttributes poolAttr; - struct sched_param sp; - poolAttr.init(); - poolAttr.stack_size(8192*2); - sp.sched_priority = 43; - poolAttr.sched_attr(&sp); - // - // Allocate and initialize first pool - // - MyPool_1 = new COOL_ThreadPool; - MyPool_1->init_pool(poolCtl_1, poolAttr, qCtl); - - COOL::EOABindingData bindingData (argv[2]); - bindingData.threadpool(MyPool_1); - - COOL_bind (cubit_impl, cubit, bindingData, env); - - if (env.exception ()) - { - ACE_DEBUG ((LM_ERROR, "Bind failed.\n")); - return -1; - } - - if (env.exception ()) { - ACE_DEBUG ((LM_ERROR, "Object Reference Export Failed.\n")); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, "Entering boa->run ().\n")); - boa->run (); - return 0; -} - - -int -main (int argc, char** argv) -{ - CORBA_Environment env; - - COOL::EOA::bind(argv[2], env); - if (env.exception()) { - ACE_DEBUG ((LM_ERROR, "Impossible to bind the ORB to the description:%s\n", argv[1])); - return -1; - } - - CORBA_ORB_ptr orb = CORBA_ORB_init (argc, argv, 0, env); - if (env.exception ()) { - ACE_DEBUG ((LM_ERROR, "ORB_init failed..\n")); - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - if (ex) { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s.\n", (const char*) msg); - } else { - fprintf(stderr, "Unknown user exception.\n"); - } - return -1; - } - - boa = orb->OA_init (argc, argv, 0, env); - if (env.exception ()) - { - ACE_DEBUG ((LM_ERROR, "OA_init failed..\n")); - return -1; - } - - COOL_Activity_ptr new_activity [2]; - - for (int i = 0; i < 1; i++) - { - if (thisCapsule->createActivity ((COOL_ActivityFunc) create_servant, - //(void *) &i, - (void *) argv, - new_activity [i]) != C_OK) - { - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed\n")); - } - } - - CORBA_Long status; - for (i = 0; i < 1; i++) - { - if (new_activity [i]->join (status) != C_OK) - { - ACE_ERROR ((LM_ERROR, "%p\n", "join failed\n")); - } - } - - ACE_DEBUG ((LM_DEBUG, "Cubit server is exiting\n")); - return 0; -} diff --git a/TAO/tests/Cubit/COOL/Makefile b/TAO/tests/Cubit/COOL/Makefile deleted file mode 100644 index b0a5e0a8a8f..00000000000 --- a/TAO/tests/Cubit/COOL/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the COOL tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = MT_Cubit - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU - |