summaryrefslogtreecommitdiff
path: root/TAO/tests/CDR
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-04-03 23:52:40 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-04-03 23:52:40 +0000
commit5282fc1fc16756f715a9b607abeb809e36434080 (patch)
tree90bea81e30e85e53034cf33b6013d511bfb9d228 /TAO/tests/CDR
parent0ca26fe9f5ad7f61a99ea2d314a63cbcbd413d28 (diff)
downloadATCD-5282fc1fc16756f715a9b607abeb809e36434080.tar.gz
ChangeLogTag:Fri Apr 3 17:43:07 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
Diffstat (limited to 'TAO/tests/CDR')
-rw-r--r--TAO/tests/CDR/Makefile263
-rw-r--r--TAO/tests/CDR/growth.cpp142
2 files changed, 365 insertions, 40 deletions
diff --git a/TAO/tests/CDR/Makefile b/TAO/tests/CDR/Makefile
index 41a33aa077d..709c37eb86b 100644
--- a/TAO/tests/CDR/Makefile
+++ b/TAO/tests/CDR/Makefile
@@ -18,13 +18,15 @@ LDFLAGS += -L$(TAO_ROOT)/tao
PROG_SRCS = \
basic_types.cpp \
tc.cpp \
+ growth.cpp \
LSRC = $(PROG_SRCS)
BASIC_TYPES_OBJS = basic_types.o
TC_OBJS = tc.o
+GROWTH_OBJS = growth.o
-BIN = basic_types tc
+BIN = basic_types tc growth
BUILD = $(BIN)
VLDLIBS = $(LDLIBS:%=%$(VAR))
VBIN = $(BIN:%=%$(VAR))
@@ -49,6 +51,9 @@ basic_types: $(addprefix $(VDIR),$(BASIC_TYPES_OBJS))
tc: $(addprefix $(VDIR),$(TC_OBJS))
$(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
+growth: $(addprefix $(VDIR),$(GROWTH_OBJS))
+ $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
+
clean:
-/bin/rm -rf *.o Log $(BIN) obj.* core Templates.DB .make.state
@@ -177,24 +182,38 @@ clean:
$(TAO_ROOT)/tao/Sequence_T.i \
$(TAO_ROOT)/tao/Object_KeyC.h \
$(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
$(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
$(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
$(TAO_ROOT)/tao/Client_Strategy_Factory.h \
$(TAO_ROOT)/tao/Server_Strategy_Factory.h \
$(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_client.i \
$(TAO_ROOT)/tao/default_server.h \
$(TAO_ROOT)/tao/ORB_Strategies_T.h \
$(TAO_ROOT)/tao/ORB_Strategies_T.i \
- $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/default_server.i \
$(TAO_ROOT)/tao/NVList.h \
- $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/NVList.i \
$(TAO_ROOT)/tao/Principal.h \
$(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
$(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Server_Request.i \
$(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
$(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
$(TAO_ROOT)/tao/CDR.h \
- $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/CDR.i \
$(TAO_ROOT)/tao/POA.h \
$(TAO_ROOT)/tao/POAC.h \
$(TAO_ROOT)/tao/POAC.i \
@@ -203,33 +222,19 @@ clean:
$(TAO_ROOT)/tao/POAS.i \
$(TAO_ROOT)/tao/Object_Table.h \
$(TAO_ROOT)/tao/Connect.h \
+ $(TAO_ROOT)/tao/Connect.i \
$(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
$(TAO_ROOT)/tao/Operation_Table.h \
$(TAO_ROOT)/tao/debug.h \
$(TAO_ROOT)/tao/IIOP_Object.h \
+ $(TAO_ROOT)/tao/IIOP_Object.i \
$(TAO_ROOT)/tao/IIOP_ORB.h \
+ $(TAO_ROOT)/tao/IIOP_ORB.i \
$(TAO_ROOT)/tao/IIOP_Interpreter.h \
$(TAO_ROOT)/tao/GIOP.h \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/Stub.i \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/Marshal.i \
- $(TAO_ROOT)/tao/CDR.i \
$(TAO_ROOT)/tao/GIOP.i \
- $(TAO_ROOT)/tao/IIOP_ORB.i \
- $(TAO_ROOT)/tao/IIOP_Object.i \
- $(TAO_ROOT)/tao/Server_Request.i \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/default_client.i \
- $(TAO_ROOT)/tao/default_server.i \
- $(TAO_ROOT)/tao/Connect.i \
- $(TAO_ROOT)/tao/Request.i \
$(TAO_ROOT)/tao/singletons.h
.obj/tc.o .obj/tc.so .shobj/tc.o .shobj/tc.so: tc.cpp \
$(TAO_ROOT)/tao/corba.h \
@@ -353,24 +358,38 @@ clean:
$(TAO_ROOT)/tao/Sequence_T.i \
$(TAO_ROOT)/tao/Object_KeyC.h \
$(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
$(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
$(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
$(TAO_ROOT)/tao/Client_Strategy_Factory.h \
$(TAO_ROOT)/tao/Server_Strategy_Factory.h \
$(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_client.i \
$(TAO_ROOT)/tao/default_server.h \
$(TAO_ROOT)/tao/ORB_Strategies_T.h \
$(TAO_ROOT)/tao/ORB_Strategies_T.i \
- $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/default_server.i \
$(TAO_ROOT)/tao/NVList.h \
- $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/NVList.i \
$(TAO_ROOT)/tao/Principal.h \
$(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
$(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Server_Request.i \
$(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
$(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
$(TAO_ROOT)/tao/CDR.h \
- $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/CDR.i \
$(TAO_ROOT)/tao/POA.h \
$(TAO_ROOT)/tao/POAC.h \
$(TAO_ROOT)/tao/POAC.i \
@@ -379,33 +398,197 @@ clean:
$(TAO_ROOT)/tao/POAS.i \
$(TAO_ROOT)/tao/Object_Table.h \
$(TAO_ROOT)/tao/Connect.h \
+ $(TAO_ROOT)/tao/Connect.i \
$(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
$(TAO_ROOT)/tao/Operation_Table.h \
$(TAO_ROOT)/tao/debug.h \
$(TAO_ROOT)/tao/IIOP_Object.h \
+ $(TAO_ROOT)/tao/IIOP_Object.i \
$(TAO_ROOT)/tao/IIOP_ORB.h \
+ $(TAO_ROOT)/tao/IIOP_ORB.i \
$(TAO_ROOT)/tao/IIOP_Interpreter.h \
$(TAO_ROOT)/tao/GIOP.h \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/singletons.h
+.obj/growth.o .obj/growth.so .shobj/growth.o .shobj/growth.so: growth.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 \
+ $(ACE_ROOT)/ace/High_Res_Timer.h \
+ $(ACE_ROOT)/ace/High_Res_Timer.i \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.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.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.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/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(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/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(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/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(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/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/Align.h \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/Any.h \
$(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/ORB_Strategies_T.h \
+ $(TAO_ROOT)/tao/ORB_Strategies_T.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Stub.h \
$(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/Object.h \
$(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/Marshal.h \
$(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/CDR.h \
$(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/GIOP.i \
- $(TAO_ROOT)/tao/IIOP_ORB.i \
- $(TAO_ROOT)/tao/IIOP_Object.i \
- $(TAO_ROOT)/tao/Server_Request.i \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/default_client.i \
- $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Object_Table.h \
+ $(TAO_ROOT)/tao/Connect.h \
$(TAO_ROOT)/tao/Connect.i \
- $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/IIOP_Object.h \
+ $(TAO_ROOT)/tao/IIOP_Object.i \
+ $(TAO_ROOT)/tao/IIOP_ORB.h \
+ $(TAO_ROOT)/tao/IIOP_ORB.i \
+ $(TAO_ROOT)/tao/IIOP_Interpreter.h \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
$(TAO_ROOT)/tao/singletons.h
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/tests/CDR/growth.cpp b/TAO/tests/CDR/growth.cpp
new file mode 100644
index 00000000000..9424cd4f40f
--- /dev/null
+++ b/TAO/tests/CDR/growth.cpp
@@ -0,0 +1,142 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/CDR
+//
+// = FILENAME
+// growth.cpp
+//
+// = DESCRIPTION
+// Helps in measuring how the growth strategy affects the
+// performance of CDR streams.
+//
+// = AUTHORS
+// Carlos O'Ryan
+//
+// ============================================================================
+
+#include "ace/Get_Opt.h"
+#include "ace/High_Res_Timer.h"
+
+#include "tao/corba.h"
+#include "tao/debug.h"
+
+static int
+test_write (TAO_OutputCDR &cdr, int n)
+{
+ CORBA::Long l = 0xdeadbeef;
+
+ for (int i = 0; i < n; ++i)
+ {
+ if (cdr.write_long (l) == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "write_long[%d] failed\n",
+ i),
+ 1);
+ }
+
+ return 0;
+}
+
+static int
+test_read (TAO_InputCDR &cdr, int n)
+{
+ CORBA::Long xl;
+
+ for (int i = 0; i < n; ++i)
+ {
+ if (cdr.read_long (xl) == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "read_long[%d] failed\n",
+ i),
+ 1);
+ }
+
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ int n = 100;
+ int low = 64;
+ int hi = 4096;
+ int s = 4;
+
+ ACE_Get_Opt get_opt (argc, argv, "n:l:h:s:");
+ int opt;
+
+ while ((opt = get_opt ()) != EOF)
+ {
+ switch (opt)
+ {
+ case 'n':
+ n = ACE_OS::atoi (get_opt.optarg);
+ break;
+ case 'l':
+ low = ACE_OS::atoi (get_opt.optarg);
+ break;
+ case 'h':
+ hi = ACE_OS::atoi (get_opt.optarg);
+ break;
+ case 's':
+ s = ACE_OS::atoi (get_opt.optarg);
+ break;
+ case '?':
+ default:
+ ACE_DEBUG ((LM_DEBUG,
+ "Usage: %s "
+ "-l low "
+ "-h high "
+ "-s step "
+ "-n n "
+ "\n"
+ "Writes and then reads longs to a CDR stream "
+ "starting from <low> up to <high> incrementing "
+ "by <step>, at each step run <n> iterations to "
+ "average."
+ "\n",
+ argv[0]));
+ return -1;
+ }
+ }
+
+ for (int x = low; x <= hi; x += s)
+ {
+ ACE_High_Res_Timer writing;
+ ACE_High_Res_Timer reading;
+
+ for (int i = 0; i < n; ++i)
+ {
+ writing.start ();
+ TAO_OutputCDR output;
+
+ if (test_write (output, x) != 0)
+ {
+ return 1;
+ }
+ writing.stop();
+
+ reading.start ();
+ TAO_InputCDR input (output);
+ if (test_read (input, x) != 0)
+ {
+ return 1;
+ }
+ reading.stop ();
+ }
+ double m = n * x;
+ ACE_hrtime_t wusecs;
+ writing.elapsed_microseconds (wusecs);
+ ACE_hrtime_t rusecs;
+ reading.elapsed_microseconds (rusecs);
+
+ double write_average = wusecs / m;
+ double read_average = rusecs / m;
+ ACE_OS::printf ("AVE: %d %f %f\n",
+ x, write_average, read_average);
+ }
+ return 0;
+}