diff options
Diffstat (limited to 'TAO/IIOP/tests/Thruput_test')
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/Makefile | 53 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/README | 50 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/client.cpp | 338 | ||||
-rwxr-xr-x | TAO/IIOP/tests/Thruput_test/run | 1 | ||||
-rwxr-xr-x | TAO/IIOP/tests/Thruput_test/run_client | 25 | ||||
-rwxr-xr-x | TAO/IIOP/tests/Thruput_test/run_server | 10 | ||||
-rwxr-xr-x | TAO/IIOP/tests/Thruput_test/run_test | 32 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/server.cpp | 226 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/ttcp.idl | 34 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/ttcpC.cpp | 1007 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/ttcpC.h | 229 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/ttcpS.cpp | 323 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/ttcpS.h | 70 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/ttcp_decl.h | 153 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/ttcp_i.cpp | 90 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/ttcp_i.h | 52 | ||||
-rw-r--r-- | TAO/IIOP/tests/Thruput_test/utils.cpp | 561 |
17 files changed, 0 insertions, 3254 deletions
diff --git a/TAO/IIOP/tests/Thruput_test/Makefile b/TAO/IIOP/tests/Thruput_test/Makefile deleted file mode 100644 index f6b0e338f8b..00000000000 --- a/TAO/IIOP/tests/Thruput_test/Makefile +++ /dev/null @@ -1,53 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the TAO_TTCP benchmark -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lcorba - -PROG_SRCS = client.cpp ttcpC.cpp ttcpS.cpp ttcp_i.cpp server.cpp utils.cpp - -LSRC = $(PROG_SRCS) - -TTCP_CLIENT_OBJS = client.o ttcpC.o utils.o - -TTCP_SERVER_OBJS = server.o ttcpC.o ttcpS.o ttcp_i.o utils.o - -BIN = client server - -BUILD = $(BIN) - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# 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.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -#include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Local modifications to variables imported by includes above. -#---------------------------------------------------------------------------- - -LDFLAGS += -L../../proto/lib -CPPFLAGS += -I../../proto/include -DUSE_ACE_EVENT_HANDLING -DDEBUG #-DONEWAY - -server: $(addprefix $(VDIR),$(TTCP_SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(TTCP_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - - - diff --git a/TAO/IIOP/tests/Thruput_test/README b/TAO/IIOP/tests/Thruput_test/README deleted file mode 100644 index 628ef0c50a4..00000000000 --- a/TAO/IIOP/tests/Thruput_test/README +++ /dev/null @@ -1,50 +0,0 @@ - TAO_TTCP Benchmark README file - -This directory contains a modified version of the TTCP benchmark that -uses the TAO ORB. TAO_TTCP is used to measure the throughput of TAO -for sending different data types. This code tests sequences of short, -long, octet, char, double, and richly-typed data such as a struct. -This benchmark uses an interpretive form of marshaling the data by -using the dynamic invocation interfaces provided by the TAO ORB. - -Organization ------------- - -client.cpp Client main program -server.cpp Server main program -ttcpC.cpp Client side stubs -ttcpS.cpp Server side skeletons -ttcpC.h Header file for stubs -ttcpS.h Header file for the skeletons -ttcp_i.cpp Implementaion of the interface -ttcp_i.h Header for the implementation -utils.cpp Utilities to calculate throughput -ttcp_decls.h Common declarations - -Results -------- -Throughput results are stored under the results directory. If testing -for REMOTE transfers, use the ./results/REMOTE directory. - -Running the tests ------------------ -Three scripts are provided - -(1) run_server : runs the server. Be sure to change the host name -(2) run_client : runs tests for various data types -(3) run_test : called by run_client - -Compiling ---------- - -Type make - -To provide for 2way tests (no data is sent in the reverse -direction. Sender blocks for a minimal ACK), comment out the -DONEWAY -flag from the CPPFLAGS - -TO-DO ------ - - --Aniruddha Gokhale
\ No newline at end of file diff --git a/TAO/IIOP/tests/Thruput_test/client.cpp b/TAO/IIOP/tests/Thruput_test/client.cpp deleted file mode 100644 index cdf3004892d..00000000000 --- a/TAO/IIOP/tests/Thruput_test/client.cpp +++ /dev/null @@ -1,338 +0,0 @@ -// $Id$ - -#include "ttcp_decl.h" -#include "debug.h" - -#include <iostream.h> -#include <fstream.h> - -void print_exception (const CORBA_Exception *x, - const char *info, - FILE *stream - ); - -char Usage[] = "\ -Usage: client [-options] [ORBeline options] host \n\ -Common options:\n\ --l ## length of bufs read from or written to network (default 8192)\n\ --A align the start of buffers to this modulus (default 16384)\n\ --o start buffers at this offset from the modulus (default 0)\n\ --v verbose: print more statistics\n\ --d set SO_DEBUG socket option\n\ --b ## set socket buffer size (if supported)\n\ --f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n\ --n ## number of source bufs written to network (default 2048)\n\ --x Use new lines after each entry in output file\n\ --h ## Remote host to send data to\n\ --D don't buffer TCP writes (sets TCP_NODELAY socket option)\n\ --L ## Output file name for the data type used\n\ --S <Total Data Size>\n\ --q <type> Send Sequence: Enumeration for various data types:\n\ -s = short, l = long, d = double, c = char\n\ -o = octet, S = struct, C = composite\n\ -"; - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else - void -sigpipe () -#endif -{ -} - -int fromlen; -int domain = PF_INET; /* Default is to use Internet domain sockets. */ -char *domainname; /* Rendezvous address for UNIX domain sockets. */ -int fd; /* fd of network socket */ -int buflen = 8 * 1024; /* length of buffer */ -char *buf; /* ptr to dynamic buffer */ -int nbuf = 2 * 1024; /* number of buffers to send in sinkmode */ - -int bufoffset = 0; /* align buffer to this */ -int bufalign = 16 * 1024; /* modulo this */ - -int udp = 0; /* 0 = tcp, !0 = udp */ -int options = 0; /* socket options */ -int one = 1; /* for 4.3 BSD style setsockopt() */ -short port = 5001; /* TCP port number */ -char *host; /* ptr to name of host */ -int trans =1; /* 0=receive, !0=transmit mode */ -int sinkmode = 1; /* 0=normal I/O, !0=sink/source mode */ -int verbose = 0; /* 0=print basic info, 1=print cpu rate, proc -* resource usage. */ -int nodelay = 0; /* set TCP_NODELAY socket option */ -int b_flag = 0; /* use mread() */ -int sockbufsize = 0; /* socket buffer size to use */ -int new_line=0; /* This is a special flag */ -int write_to_file=1; /* indecates writing to file (default)*/ -char fmt = 'K'; /* output format:k=kilobits,K=kilobytes, -* m = megabits, M = megabytes, -* g = gigabits, G = gigabytes */ -int touchdata = 0; /* access data after reading */ - -struct hostent *addr; -char *title = 0; - -char stats[128]; -unsigned long srcDataSize; /* Total amount of source data */ -unsigned long nbytes; /* bytes on net */ -unsigned long numCalls; /* # of I/O system calls */ -double cput, realt; /* user, real time (seconds) */ -unsigned long dt; - -/* declare struct variables for various message types */ -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; - -static const char ior_prefix [] = "IOR:"; -static const char iiop_prefix [] = "iiop:"; - -int -main (int argc, char *argv[]) -{ - - unsigned long addr_tmp; - unsigned short done = 0; - int c; - - CORBA_ORB_ptr orb_ptr; - CORBA_Environment env; - CORBA_Object_ptr objref = CORBA_Object::_nil(); - ttcp_sequence_ptr ttcp_seq; - unsigned loop_count = 1; - int exit_later = 0; - CORBA_String str; - fstream iorfile; - - if (argc < 2) - goto usage; - - TAO_debug_level = 0; - while (!done && ((c = getopt (argc, argv, "d:vDb:h:f:l:n:A:o:L:xS:q:")) != -1)) - { - switch (c) - { - case 'h': - host = optarg; - break; - case 'x': - new_line = 1; - break; - case 'L': - title = optarg; - break; - case 'd': - TAO_debug_level = atoi(optarg); - if (TAO_debug_level > 10) - TAO_debug_level = 10; - break; - case 'D': -#ifdef TCP_NODELAY - nodelay = 1; -#else - fprintf (stderr, - "ttcp: -D option ignored: TCP_NODELAY socket option not supported\n"); -#endif - break; - case 'n': - nbuf = atoi (optarg); - break; - case 'l': - buflen = atoi (optarg); - break; - case 'v': - verbose = 1; - break; - case 'A': - bufalign = atoi (optarg); - break; - case 'o': - bufoffset = atoi (optarg); - break; - case 'b': -#if defined(SO_SNDBUF) || defined(SO_RCVBUF) - sockbufsize = atoi (optarg); -#else - fprintf (stderr, - "ttcp: -b option ignored: SO_SNDBUF/SO_RCVBUF socket options not supported\n"); -#endif - break; - case 'f': - fmt = *optarg; - break; - case 'S': /* total source data to send. */ - /* modify nbuf accordingly */ - srcDataSize = atoi(optarg); - break; - case 'q': /* Send sequence of desired data type */ - switch(*optarg){ - case 's': - dt = SEND_SHORT; - break; - case 'l': - dt = SEND_LONG; - break; - case 'd': - dt = SEND_DOUBLE; - break; - case 'c': - dt = SEND_CHAR; - break; - case 'o': - dt = SEND_OCTET; - break; - case 'S': - dt = SEND_STRUCT; - break; - case 'C': - dt = SEND_COMPOSITE; - break; - } - break; - case '?': - done = 1; - break; - default: - goto usage; - } - } - - // - // Transmitter - // - orb_ptr = CORBA_ORB_init(argc, argv, "internet", env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB initialization", stdout); - return 1; - } - - str = CORBA_string_alloc(500); - - // read the IOR from the file ior.txt - iorfile.open("ior.txt", ios::in); - iorfile >> ((char *)str); - iorfile.close(); - - cout << "Read IOR string as: " << ((char *)str) << endl; - - objref = orb_ptr->string_to_object(str, env); - if (env.exception() != 0){ - print_exception(env.exception(), "string2object", stdout); - return 1; - } - CORBA_string_free(str); - - - if (!CORBA_is_nil(objref)){ - ttcp_seq = ttcp_sequence::_narrow(objref); - - if (!CORBA_is_nil(ttcp_seq)){ - - /* modify nbuf according to Total data size */ - nbuf = srcDataSize/buflen; - fprintf(stderr, "data size = %d, buflen = %d, nbuf = %d\n",srcDataSize, buflen, nbuf); - - // - // Prepare the Message to be sent - // - - errno = 0; - if ((buf = (char *) malloc (buflen + bufalign)) == (char *) NULL) - err ("malloc"); - if (bufalign != 0) - buf += (bufalign - ((int) buf % bufalign) + bufoffset) % bufalign; - - - cout << "Sizeof PerfStruct = " << sizeof(PerfStruct) << endl; - // fill the appropriate buffers - FillPattern (buf, buflen, dt); - // - // Start the timers on the client and server sides - // - - prep_timer (); - ttcp_seq->start_timer (env); - if (env.exception () != 0) { - print_exception (env.exception (), "start_timer operation", stdout); - return 1; - } -#if defined (USE_QUANTIFY) - /* start recording quantify data from here */ - quantify_clear_data(); - quantify_start_recording_data(); -#endif - while (nbuf--) - { - switch(dt){ - case SEND_SHORT: - ttcp_seq->sendShortSeq(*sseq, env); - nbytes += sseq->length()*sizeof(CORBA_Short); - break; - case SEND_LONG: - ttcp_seq->sendLongSeq(*lseq, env); - nbytes += lseq->length()*sizeof(CORBA_Long); - break; - case SEND_OCTET: - ttcp_seq->sendOctetSeq(*oseq, env); - nbytes += oseq->length()*sizeof(CORBA_Octet); - break; - case SEND_DOUBLE: - ttcp_seq->sendDoubleSeq(*dseq, env); - nbytes += dseq->length()*sizeof(CORBA_Double); - break; - case SEND_CHAR: - ttcp_seq->sendCharSeq(*cseq, env); - nbytes += cseq->length()*sizeof(CORBA_Char); - break; - case SEND_STRUCT: - ttcp_seq->sendStructSeq(*Sseq, env); - nbytes += Sseq->length()*sizeof(PerfStruct); - break; - } - numCalls++; - if (env.exception () != 0) { - print_exception (env.exception (), "send operation", stdout); - return 1; - } - } -#if defined(USE_QUANTIFY) - quantify_stop_recording_data(); -#endif - // - // Stop the timer - // - ttcp_seq->stop_timer(env); - if (env.exception () != 0) { - print_exception (env.exception (), "stop_timer operation", stdout); - return 1; - } - (void) read_timer (stats, sizeof (stats)); - - // print results - PrintStats(); - - } - } - - CORBA_release(ttcp_seq); - return(0); -usage: - fprintf (stderr, Usage); - return 1; -} - - - - - - diff --git a/TAO/IIOP/tests/Thruput_test/run b/TAO/IIOP/tests/Thruput_test/run deleted file mode 100755 index b746a09536d..00000000000 --- a/TAO/IIOP/tests/Thruput_test/run +++ /dev/null @@ -1 +0,0 @@ -client -S 67108864 -f m -D -l $1 -L temp -q $2 -b 65536 -d $3 diff --git a/TAO/IIOP/tests/Thruput_test/run_client b/TAO/IIOP/tests/Thruput_test/run_client deleted file mode 100755 index 41f9fd5bc51..00000000000 --- a/TAO/IIOP/tests/Thruput_test/run_client +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/csh -f -# All ATM tests: 64k socket Queue Size -# -# shorts -run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 s -sleep 5 -# longs -run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 l -sleep 5 -# octets -run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 o -sleep 5 -# doubles -run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 d -sleep 5 -# chars -#run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 c -#sleep 5 -# structures -run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 S -sleep 5 -# Composite Structs -#run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 C -#sleep 5 -# diff --git a/TAO/IIOP/tests/Thruput_test/run_server b/TAO/IIOP/tests/Thruput_test/run_server deleted file mode 100755 index 9ce44a510b1..00000000000 --- a/TAO/IIOP/tests/Thruput_test/run_server +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/csh -# -# Usage: server <switches> -# -u : use IOR -# -f m : output results in Mbps -# -b <sock Q size> ** not implemented ** -# -OAhost <host name> ************* must provide this for this version -# -OAthread : use threaded version as opposed to reactive -# -server -u -f m -b 65536 -OAhost mambo-cip #-OAthread diff --git a/TAO/IIOP/tests/Thruput_test/run_test b/TAO/IIOP/tests/Thruput_test/run_test deleted file mode 100755 index e36938f42b6..00000000000 --- a/TAO/IIOP/tests/Thruput_test/run_test +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/csh -f -if ($#argv < 3) then - echo "Usage: sclt <Total Data Size> <Max msg size> <destination> <TitleOfThisTest> <seq type>" - exit 1 -endif -# -@ msize=1024 -@ limit= ($argv[2] * 1024) -#echo $limit -#echo $msize -echo "Iteration#" 1 ": client -S" $1 "-D -f m -s -t -l" $msize "-h" $3 "-x -L" $4 "-q" $5 -b 65536 -client -S $1 -D -f m -l $msize -h $3 -x -L $4 -q $5 -b 65536 -set flag=0 -while ($msize <= $limit) - if ($flag == 0) goto label - echo "Iteration#" 1 ": client -S" $1 "-D -f m -l" $msize "-h" $3 "-x -L" $4 "-q" $5 -b 65536 - client -S $1 -D -f m -l $msize -h $3 -x -L $4 -q $5 -b 65536 - label: - set flag=1 - sleep 5 - foreach i (2) - echo "Iteration#" $i ": client -S" $1 "-D -f m -s -t -l" $msize "-h" $3 "-x -L " $4 "-q" $5 -b 65536 - client -S $1 -D -f m -l $msize -h $3 -x -L $4 -q $5 -b 65536 - end - echo "---------------------------" - @ msize = ($msize * 2) - sleep 5 -end - -echo " " -echo "Done at:" -date diff --git a/TAO/IIOP/tests/Thruput_test/server.cpp b/TAO/IIOP/tests/Thruput_test/server.cpp deleted file mode 100644 index b2a10d91510..00000000000 --- a/TAO/IIOP/tests/Thruput_test/server.cpp +++ /dev/null @@ -1,226 +0,0 @@ -// $Id$ - -#include "ttcp_i.h" - -#include <iostream.h> -#include <fstream.h> - -void print_exception (const CORBA_Exception *x, - const char *info, - FILE *stream - ); - -char Usage[] = "\ -Usage: server [options] \n\ -Common options:\n\ --l ## length of bufs read from or written to network (default 8192)\n\ --A align the start of buffers to this modulus (default 16384)\n\ --O start buffers at this offset from the modulus (default 0)\n\ --v verbose: print more statistics\n\ --d set SO_DEBUG socket option\n\ --b ## set socket buffer size (if supported)\n\ --f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n\ --L ## Output file name for the data type used\n\ -Options specific to -r:\n\ --B for -s, only output full blocks as specified by -l (for TAR)\n\ --T \"touch\": access each byte as it's read\n\ -"; - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else - void -sigpipe () -#endif -{ -} - -int fromlen; -int domain = PF_INET; /* Default is to use Internet domain sockets. */ -char *domainname; /* Rendezvous address for UNIX domain sockets. */ -int fd; /* fd of network socket */ -int buflen = 8 * 1024; /* length of buffer */ -char *buf; /* ptr to dynamic buffer */ -int nbuf = 2 * 1024; /* number of buffers to send in sinkmode */ - -int bufoffset = 0; /* align buffer to this */ -int bufalign = 16 * 1024; /* modulo this */ - -int udp = 0; /* 0 = tcp, !0 = udp */ -int options = 0; /* socket options */ -int one = 1; /* for 4.3 BSD style setsockopt() */ -short port = 5001; /* TCP port number */ -char *host; /* ptr to name of host */ -int trans; /* 0=receive, !0=transmit mode */ -int sinkmode = 0; /* 0=normal I/O, !0=sink/source mode */ -int verbose = 0; /* 0=print basic info, 1=print cpu rate, proc - * resource usage. */ -int nodelay = 0; /* set TCP_NODELAY socket option */ -int b_flag = 0; /* use mread() */ -int sockbufsize = 0; /* socket buffer size to use */ -int new_line=0; /* This is a special flag */ -int write_to_file=1; /* indecates writing to file (default)*/ -char fmt = 'K'; /* output format:k=kilobits,K=kilobytes, - * m = megabits, M = megabytes, - * g = gigabits, G = gigabytes */ -int touchdata = 0; /* access data after reading */ - -struct hostent *addr; -char *title = 0; - -char stats[128]; -unsigned long srcDataSize; /* Total amount of source data */ -unsigned long nbytes; /* bytes on net */ -unsigned long numCalls; /* # of I/O system calls */ -double cput, realt; /* user, real time (seconds) */ -unsigned long dt; - -/* declare struct variables for various message types */ -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; - -unsigned short isDone = 0; -ttcp_sequence_i *my_ttcp; - -// -// forwarding support -// -static CORBA_Object_ptr fwd_ref; - -int -main (int argc, char *const *argv) -{ - - unsigned long addr_tmp; - int c; - unsigned short done = 0; - CORBA_Environment env; - CORBA_ORB_ptr orb_ptr; - CORBA_BOA_ptr oa_ptr; - CORBA_Boolean do_fork = CORBA_B_FALSE; - CORBA_Boolean do_threads = CORBA_B_FALSE; - CORBA_String key = (CORBA_String) "key0"; - char *oa_name = "ROA"; - char *orb_name = "internet"; - int idle = -1; - int use_ior = 0; - fstream iorfile; - CORBA_String str; - - - if (argc < 2) - goto usage; - - orb_ptr = CORBA_ORB_init (argc, argv, orb_name, env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB init", stdout); - return 1; - } - - oa_ptr = orb_ptr->BOA_init(argc, argv, oa_name); - if (env.exception () != 0) { - print_exception (env.exception (), "OA init", stdout); - return 1; - } - - TAO_debug_level = 0; - // Now process the options other than Orbix specific options - while (!done && ((c = getopt (argc, argv, "ui:d:vb:f:l:L:")) != -1)) - { - switch (c) - { - case 'u': - use_ior = 1; - orb_name = ""; - break; - case 'L': - title = optarg; - break; - case 'd': - TAO_debug_level = atoi(optarg); - if (TAO_debug_level > 10) - TAO_debug_level = 10; - break; - case 'l': - buflen = atoi (optarg); - break; - case 'i': - idle = atoi (optarg); - break; - case 'v': - verbose = 1; - break; - case 'b': -#if defined(SO_SNDBUF) || defined(SO_RCVBUF) - sockbufsize = atoi (optarg); -#else - fprintf (stderr, - "ttcp: -b option ignored: SO_SNDBUF/SO_RCVBUF socket options not supported\n"); -#endif - break; - case 'f': - fmt = *optarg; - break; - case 'O': - case '?': - done = 1; - break; - default: - goto usage; - } - } - - // - // Receiver - // - - iorfile.open("ior.txt", ios::out); - my_ttcp = new ttcp_sequence_i("TTCP_IIOP_test"); - str = orb_ptr->object_to_string(my_ttcp, env); - if (env.exception() != 0) - { - print_exception (env.exception(), "object_to_string", stdout); - return 1; - } - iorfile << ((char *)str) << endl; - -#if defined (USE_QUANTIFY) - quantify_clear_data(); - quantify_start_recording_data(); -#endif - - ACE_Reactor::run_event_loop(); - -#if 0 - while (1) - { - int result = params->reactor()->handle_events (); - - if (result == -1) - { - terminationStatus = -1; - break; - } - } -#endif - return 0; -usage: - fprintf (stderr, Usage); - return(1); -} - - - - - - - diff --git a/TAO/IIOP/tests/Thruput_test/ttcp.idl b/TAO/IIOP/tests/Thruput_test/ttcp.idl deleted file mode 100644 index ff13a4b664b..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcp.idl +++ /dev/null @@ -1,34 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -struct PerfStruct{ - short s; - char c; - long l; - octet o; - double d; - octet pad[8]; // to make it 32 bytes -}; - -// Richly typed data -interface ttcp_sequence -{ - typedef sequence<short> ShortSeq; - typedef sequence<long> LongSeq; - typedef sequence<double> DoubleSeq; - typedef sequence<char> CharSeq; - typedef sequence<octet> OctetSeq; - typedef sequence<PerfStruct> StructSeq; - - - // Routines to send sequences of various data types - oneway void sendShortSeq (in ShortSeq ttcp_seq); - oneway void sendLongSeq (in LongSeq ttcp_seq); - oneway void sendDoubleSeq (in DoubleSeq ttcp_seq); - oneway void sendCharSeq (in CharSeq ttcp_seq); - oneway void sendOctetSeq (in OctetSeq ttcp_seq); - oneway void sendStructSeq (in StructSeq ttcp_seq); - - oneway void start_timer (); - oneway void stop_timer (); -}; diff --git a/TAO/IIOP/tests/Thruput_test/ttcpC.cpp b/TAO/IIOP/tests/Thruput_test/ttcpC.cpp deleted file mode 100644 index 6f96d387c25..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcpC.cpp +++ /dev/null @@ -1,1007 +0,0 @@ -// $Id$ - -#include <stdio.h> -#include "ttcpC.h" - -// constructor -ttcp_sequence::ttcp_sequence(STUB_Object *refdata) - : CORBA_Object(refdata) -{ -} - -// static duplicate method -ttcp_sequence_ptr ttcp_sequence::_duplicate(ttcp_sequence_ptr obj) -{ - void *dupl; - - if (obj) - { - obj->AddRef(); - } - return obj; -} - -// static _narrow method -ttcp_sequence_ptr ttcp_sequence::_narrow(CORBA_Object_ptr obj) -{ - CORBA_Environment env; - if (obj->_is_a("IDL:ttcp_sequence:1.0", env)){ - STUB_Object *istub; - if (obj->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR){ - return ttcp_sequence::_nil(); - } - ttcp_sequence_ptr new_obj = new ttcp_sequence(istub); - return ttcp_sequence::_duplicate(new_obj); - } - return ttcp_sequence::_nil(); -} - -ttcp_sequence_ptr ttcp_sequence::_nil() -{ - return (ttcp_sequence_ptr)NULL; -} - -ttcp_sequence::ShortSeq::ShortSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::ShortSeq::ShortSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Short[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::ShortSeq::ShortSeq(CORBA_ULong max, CORBA_ULong length, - CORBA_Short *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::ShortSeq::~ShortSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::ShortSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Short *temp = new CORBA_Short[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(CORBA_Short))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Short)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::ShortSeq::length() const -{ - return this->_length; -} - -CORBA_Short& ttcp_sequence::ShortSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Short& ttcp_sequence::ShortSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -// LongSeq -ttcp_sequence::LongSeq::LongSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::LongSeq::LongSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Long[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::LongSeq::LongSeq(CORBA_ULong max, CORBA_ULong length, - CORBA_Long *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::LongSeq::~LongSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::LongSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Long *temp = new CORBA_Long[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(CORBA_Long))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Long)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::LongSeq::length() const -{ - return this->_length; -} - -CORBA_Long& ttcp_sequence::LongSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Long& ttcp_sequence::LongSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -// DoubleSeq -ttcp_sequence::DoubleSeq::DoubleSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::DoubleSeq::DoubleSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Double[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::DoubleSeq::DoubleSeq(CORBA_ULong max, CORBA_ULong length, - CORBA_Double *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::DoubleSeq::~DoubleSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::DoubleSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Double *temp = new CORBA_Double[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(CORBA_Double))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Double)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::DoubleSeq::length() const -{ - return this->_length; -} - -CORBA_Double& ttcp_sequence::DoubleSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Double& ttcp_sequence::DoubleSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -// Char seq -ttcp_sequence::CharSeq::CharSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::CharSeq::CharSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Char[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::CharSeq::CharSeq(CORBA_ULong max, CORBA_ULong length, - CORBA_Char *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::CharSeq::~CharSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::CharSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Char *temp = new CORBA_Char[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(CORBA_Char))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Char)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::CharSeq::length() const -{ - return this->_length; -} - -CORBA_Char& ttcp_sequence::CharSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Char& ttcp_sequence::CharSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -//Octet Seq -ttcp_sequence::OctetSeq::OctetSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::OctetSeq::OctetSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Octet[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::OctetSeq::OctetSeq(CORBA_ULong max, CORBA_ULong length, - CORBA_Octet *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::OctetSeq::~OctetSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::OctetSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Octet *temp = new CORBA_Octet[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(CORBA_Octet))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Octet)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::OctetSeq::length() const -{ - return this->_length; -} - -CORBA_Octet& ttcp_sequence::OctetSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Octet& ttcp_sequence::OctetSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - - -//struct seq -ttcp_sequence::StructSeq::StructSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::StructSeq::StructSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new PerfStruct[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::StructSeq::StructSeq(CORBA_ULong max, CORBA_ULong length, - PerfStruct *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::StructSeq::~StructSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::StructSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - PerfStruct *temp = new PerfStruct[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(PerfStruct))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(PerfStruct)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::StructSeq::length() const -{ - return this->_length; -} - -PerfStruct& ttcp_sequence::StructSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const PerfStruct& ttcp_sequence::StructSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - - -/***************** TypeCodes **************/ - -// encapsulated parameters for struct PerfStruct typecode -static const CORBA_Long _oc_PerfStruct [] = { - // strings are encoded as length followed by the string. A length of 1 stands - // for the NULL character - MY_BYTE_SEX, // byte order - 1, 0, // empty string, repoID - 1, 0, // empty string, struct name - 6, // 6 struct elements - - // short - 1, 0, // empty string - tk_short, - - // char - 1, 0, - tk_char, - - // long - 1, 0, - tk_long, - - // octet - 1, 0, - tk_octet, - - // double - 1, 0, - tk_double, - - // padding - 1, 0, - tk_array, - 12, // encapsulation length - MY_BYTE_SEX, - tk_octet, - 8 -}; - - -static CORBA_TypeCode _tc__tc_PerfStruct(tk_struct, - sizeof _oc_PerfStruct, - (unsigned char *) &_oc_PerfStruct, - CORBA_B_FALSE); -CORBA_TypeCode_ptr _tc_PerfStruct = &_tc__tc_PerfStruct; - -// Typecodes for all the sequences - -// StructSeq -static const CORBA_Long _oc_ttcp_sequence_StructSeq [] = { - MY_BYTE_SEX, // byte order - tk_struct, // sequence of struct - 112, // encapsulaton length - MY_BYTE_SEX, // byte order - 1, 0, // empty string, repoID - 1, 0, // empty string, struct name - 6, // 6 struct elements - - // short - 1, 0, // empty string - tk_short, - - // char - 1, 0, - tk_char, - - // long - 1, 0, - tk_long, - - // octet - 1, 0, - tk_octet, - - // double - 1, 0, - tk_double, - - // padding - 1, 0, - tk_array, // array - 12, //encapsulation length - MY_BYTE_SEX, - tk_octet, - 8, - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_StructSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_StructSeq, - (unsigned char *) - &_oc_ttcp_sequence_StructSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_StructSeq = &_tc__tc_ttcp_sequence_StructSeq; - -// ShortSeq -static const CORBA_Long _oc_ttcp_sequence_ShortSeq [] = { - MY_BYTE_SEX, // byte order - tk_short, // sequence of short - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_ShortSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_ShortSeq, - (unsigned char *) - &_oc_ttcp_sequence_ShortSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_ShortSeq = &_tc__tc_ttcp_sequence_ShortSeq; - -// LongSeq -static const CORBA_Long _oc_ttcp_sequence_LongSeq [] = { - MY_BYTE_SEX, // byte order - tk_long, // sequence of long - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_LongSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_LongSeq, - (unsigned char *) - &_oc_ttcp_sequence_LongSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_LongSeq = &_tc__tc_ttcp_sequence_LongSeq; - -// DoubleSeq -static const CORBA_Long _oc_ttcp_sequence_DoubleSeq [] = { - MY_BYTE_SEX, // byte order - tk_double, // sequence of doubles - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_DoubleSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_DoubleSeq, - (unsigned char *) - &_oc_ttcp_sequence_DoubleSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_DoubleSeq = &_tc__tc_ttcp_sequence_DoubleSeq; - -// CharSeq -static const CORBA_Long _oc_ttcp_sequence_CharSeq [] = { - MY_BYTE_SEX, // byte order - tk_char, // sequence of chars - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_CharSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_CharSeq, - (unsigned char *) - &_oc_ttcp_sequence_CharSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_CharSeq = &_tc__tc_ttcp_sequence_CharSeq; - -//OctetSeq -static const CORBA_Long _oc_ttcp_sequence_OctetSeq [] = { - MY_BYTE_SEX, // byte order - tk_octet, // sequence of octets - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_OctetSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_OctetSeq, - (unsigned char *) - &_oc_ttcp_sequence_OctetSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_OctetSeq = &_tc__tc_ttcp_sequence_OctetSeq; - - - -/***************** All the methods ********************/ - -//sendShortSeq -static const TAO_Param_Data ttcp_sequence_sendShortSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_ShortSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendShortSeq_TAO_Call_Data = { - "sendShortSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendShortSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendShortSeq(const ttcp_sequence::ShortSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendShortSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendShortSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -//sendLongSeq -static const TAO_Param_Data ttcp_sequence_sendLongSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_LongSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendLongSeq_TAO_Call_Data = { - "sendLongSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendLongSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendLongSeq(const ttcp_sequence::LongSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendLongSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendLongSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -//sendDoubleSeq -static const TAO_Param_Data ttcp_sequence_sendDoubleSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_DoubleSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendDoubleSeq_TAO_Call_Data = { - "sendDoubleSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendDoubleSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendDoubleSeq(const ttcp_sequence::DoubleSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendDoubleSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendDoubleSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -//sendCharSeq -static const TAO_Param_Data ttcp_sequence_sendCharSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_CharSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendCharSeq_TAO_Call_Data = { - "sendCharSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendCharSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendCharSeq(const ttcp_sequence::CharSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendCharSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendCharSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -//sendOctetSeq -static const TAO_Param_Data ttcp_sequence_sendOctetSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_OctetSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendOctetSeq_TAO_Call_Data = { - "sendOctetSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendOctetSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendOctetSeq(const ttcp_sequence::OctetSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendOctetSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendOctetSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -//sendStructSeq -static const TAO_Param_Data ttcp_sequence_sendStructSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_StructSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendStructSeq_TAO_Call_Data = { - "sendStructSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendStructSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendStructSeq(const ttcp_sequence::StructSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendStructSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendStructSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -// start timer -#ifndef ONEWAY -static const TAO_Param_Data ttcp_sequence_start_timer_params [] = { - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - } -}; -#endif - -static const TAO_Call_Data ttcp_sequence_start_timer_TAO_Call_Data = { - "start_timer", -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 1, - &ttcp_sequence_start_timer_params [0], -#else - CORBA_B_FALSE, // oneway - 0, - 0, -#endif - 0, 0 -}; - -//stub -void ttcp_sequence::start_timer(CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_start_timer_TAO_Call_Data); -#else - istub->do_call(env, &ttcp_sequence_start_timer_TAO_Call_Data); -#endif -} - -// stop timer -#ifndef ONEWAY -static const TAO_Param_Data ttcp_sequence_stop_timer_params [] = { - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - } -}; -#endif - -static const TAO_Call_Data ttcp_sequence_stop_timer_TAO_Call_Data = { - "stop_timer", -#ifndef ONEWAY - CORBA_B_TRUE, - 1, - &ttcp_sequence_stop_timer_params[0], -#else - CORBA_B_FALSE, // oneway - 0, - 0, -#endif - 0, 0 -}; - -//stub -void ttcp_sequence::stop_timer(CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_stop_timer_TAO_Call_Data); -#else - istub->do_call(env, &ttcp_sequence_stop_timer_TAO_Call_Data); -#endif -} diff --git a/TAO/IIOP/tests/Thruput_test/ttcpC.h b/TAO/IIOP/tests/Thruput_test/ttcpC.h deleted file mode 100644 index faeee26c94d..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcpC.h +++ /dev/null @@ -1,229 +0,0 @@ -// $Id$ - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of TAO -***************************************************************************/ - -#ifndef TTCP_SEQUENCE_C_H -#define TTCP_SEQUENCE_C_H - -#include <stdlib.h> -#include <string.h> - -#include "corba/orb.h" -#include "corba/stub.h" -#include "debug.h" - -// mapping for PerfStruct -struct PerfStruct{ - CORBA_Short s; - CORBA_Char c; - CORBA_Long l; - CORBA_Octet o; - CORBA_Double d; - CORBA_Octet pad[8]; - - - typedef CORBA_Octet pad_slice; - typedef pad_slice *pad_slice_ptr; - - static inline pad_slice *pad_alloc() { - return new CORBA_Octet[8]; - } - - static inline void pad_free(pad_slice *data) { - if (data) delete[] data; - } - -}; -extern CORBA_TypeCode_ptr _tc_PerfStruct; - -class ttcp_sequence; -typedef ttcp_sequence *ttcp_sequence_ptr; -typedef ttcp_sequence_ptr ttcp_sequenceRef; - -class ttcp_sequence: public virtual CORBA_Object -{ -public: - static ttcp_sequence_ptr _duplicate(ttcp_sequence_ptr obj); - static ttcp_sequence_ptr _narrow(CORBA_Object_ptr obj); - static ttcp_sequence_ptr _nil(); - - - class ShortSeq - { - public: - ShortSeq(); - ShortSeq(CORBA_ULong max); - ShortSeq(CORBA_ULong max, - CORBA_ULong length, - CORBA_Short *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // ShortSeq(const ShortSeq&); - ~ShortSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - CORBA_Short &operator[](CORBA_ULong index); - const CORBA_Short &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Short *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_ShortSeq; - - class LongSeq - { - public: - LongSeq(); - LongSeq(CORBA_ULong max); - LongSeq(CORBA_ULong max, - CORBA_ULong length, - CORBA_Long *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // LongSeq(const LongSeq&); - ~LongSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - CORBA_Long &operator[](CORBA_ULong index); - const CORBA_Long &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Long *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_LongSeq; - - class DoubleSeq - { - public: - DoubleSeq(); - DoubleSeq(CORBA_ULong max); - DoubleSeq(CORBA_ULong max, - CORBA_ULong length, - CORBA_Double *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // DoubleSeq(const DoubleSeq&); - ~DoubleSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - CORBA_Double &operator[](CORBA_ULong index); - const CORBA_Double &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Double *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_DoubleSeq; - - class CharSeq - { - public: - CharSeq(); - CharSeq(CORBA_ULong max); - CharSeq(CORBA_ULong max, - CORBA_ULong length, - CORBA_Char *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // CharSeq(const CharSeq&); - ~CharSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - CORBA_Char &operator[](CORBA_ULong index); - const CORBA_Char &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Char *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_CharSeq; - - class OctetSeq - { - public: - OctetSeq(); - OctetSeq(CORBA_ULong max); - OctetSeq(CORBA_ULong max, - CORBA_ULong length, - CORBA_Octet *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // OctetSeq(const OctetSeq&); - ~OctetSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - CORBA_Octet &operator[](CORBA_ULong index); - const CORBA_Octet &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Octet *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_OctetSeq; - - class StructSeq - { - public: - StructSeq(); - StructSeq(CORBA_ULong max); - StructSeq(CORBA_ULong max, - CORBA_ULong length, - PerfStruct *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // StructSeq(const StructSeq&); - ~StructSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - PerfStruct &operator[](CORBA_ULong index); - const PerfStruct &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - PerfStruct *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_StructSeq; - - - // now the methods - virtual void sendShortSeq(const ShortSeq& ttcp_seq, CORBA_Environment &); - virtual void sendLongSeq(const LongSeq& ttcp_seq, CORBA_Environment &); - virtual void sendDoubleSeq(const DoubleSeq& ttcp_seq, CORBA_Environment &); - virtual void sendOctetSeq(const OctetSeq& ttcp_seq, CORBA_Environment &); - virtual void sendCharSeq(const CharSeq& ttcp_seq, CORBA_Environment &); - virtual void sendStructSeq(const StructSeq& ttcp_seq, CORBA_Environment &); - - virtual void start_timer(CORBA_Environment &); - virtual void stop_timer(CORBA_Environment &); - -protected: - ttcp_sequence() {} - ttcp_sequence(STUB_Object *refdata); - virtual ~ttcp_sequence() {} - -private: - ttcp_sequence(const ttcp_sequence &) {} - void operator=(const ttcp_sequence &) {} -}; - -#endif - - - - diff --git a/TAO/IIOP/tests/Thruput_test/ttcpS.cpp b/TAO/IIOP/tests/Thruput_test/ttcpS.cpp deleted file mode 100644 index 33fb95c8bcd..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcpS.cpp +++ /dev/null @@ -1,323 +0,0 @@ -// $Id$ - -#include <iostream.h> -#include "ttcpS.h" -#include "corba/orb.h" -#include "params.h" -#include "iiopobj.h" -#include "corba/optable.h" // for registering our methods -#include "corba/corbacom.h" - -TAO_Dynamic_Hash_OpTable tao_ttcp_sequence_optable(9); // 8 + 1 operations on our - // interface -// operation database -struct method_db -{ - CORBA_String opname; - TAO_Skeleton skel_ptr; -}; - -static const method_db ttcp_sequence_operations[] = { - {"_is_a", &_skel_ttcp_sequence::_ttcp_sequence_is_a_skel}, - { "sendShortSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendShortSeq_skel}, - { "sendLongSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendLongSeq_skel}, - { "sendDoubleSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendDoubleSeq_skel}, - { "sendOctetSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendOctetSeq_skel}, - { "sendCharSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendCharSeq_skel}, - { "sendStructSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendStructSeq_skel}, - { "start_timer", &_skel_ttcp_sequence::_ttcp_sequence_start_timer_skel}, - { "stop_timer", &_skel_ttcp_sequence::_ttcp_sequence_stop_timer_skel}, - { 0, 0 } -}; - -// constructor -_skel_ttcp_sequence::_skel_ttcp_sequence(const char *obj_name) -{ - CORBA_String_var type_id = "IDL:ttcp_sequence:1.0"; // repository ID - IIOP_Object *data; // IIOP object - CORBA_BOA_ptr oa = TAO_OA_PARAMS::instance()->oa(); // underlying BOA - this->optable_ = &tao_ttcp_sequence_optable; // operation database - CORBA_Long i; - - // insert operation names into the operation table - for (i=0; i < 9; i++) - { - this->optable_->bind(ttcp_sequence_operations[i].opname, - ttcp_sequence_operations[i].skel_ptr); - } - - // setup an IIOP object - data = new IIOP_Object(type_id); - data->profile.iiop_version.major = IIOP::MY_MAJOR; - data->profile.iiop_version.minor = IIOP::MY_MINOR; - data->profile.host = ACE_OS::strdup(oa->get_addr().get_host_name()); - data->profile.port = oa->get_addr().get_port_number(); - data->profile.object_key.length = ACE_OS::strlen(obj_name); - data->profile.object_key.maximum = data->profile.object_key.length; - data->profile.object_key.buffer = new CORBA_Octet [(size_t)data->profile.object_key.length+1]; - ACE_OS::memcpy(data->profile.object_key.buffer, obj_name, - data->profile.object_key.length); // set the object key - this->set_parent(data); // store the IIOP obj reference with ourselves - this->sub_ = this; // set the most derived class to be ourselves - if (oa) oa->bind(data->profile.object_key, this);// register ourselves -} - -// skeleton sendShortSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendShortSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_ShortSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::ShortSeq *value = (ttcp_sequence::ShortSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendShortSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton sendLongSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendLongSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_LongSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::LongSeq *value = (ttcp_sequence::LongSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendLongSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton sendDoubleSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendDoubleSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_DoubleSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::DoubleSeq *value = (ttcp_sequence::DoubleSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendDoubleSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton sendOctetSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendOctetSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_OctetSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::OctetSeq *value = (ttcp_sequence::OctetSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendOctetSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton sendCharSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendCharSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_CharSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::CharSeq *value = (ttcp_sequence::CharSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendCharSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton sendStructSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendStructSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_StructSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::StructSeq *value = (ttcp_sequence::StructSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendStructSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton start_timer -void _skel_ttcp_sequence::_ttcp_sequence_start_timer_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->start_timer(env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton stop_timer -void _skel_ttcp_sequence::_ttcp_sequence_stop_timer_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->stop_timer(env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -void _skel_ttcp_sequence::_ttcp_sequence_is_a_skel ( - CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env - ) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_String); - char *type_id = "IDL:ttcp_sequence:1.0"; - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - - req.params (nvlist, env); - if (env.exception () != 0) { - dexc (env, "is_a_skel, get params"); - return; - } - - CORBA_Boolean *retval; - CORBA_String value = *(CORBA_String *)nv->value ()->value (); - - cout << "object id = " << ((char *)value) << endl; - if (strcmp ((char *)value, (char *)type_id) == 0 - || strcmp ((char *)value, _tc_CORBA_Object->id(env)) == 0) - retval = new CORBA_Boolean (CORBA_B_TRUE); - else - retval = new CORBA_Boolean (CORBA_B_FALSE); - - CORBA_Any *any = - new CORBA_Any (_tc_CORBA_Boolean, retval, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "_is_a, result"); -} - diff --git a/TAO/IIOP/tests/Thruput_test/ttcpS.h b/TAO/IIOP/tests/Thruput_test/ttcpS.h deleted file mode 100644 index 14ff95379e3..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcpS.h +++ /dev/null @@ -1,70 +0,0 @@ -// $Id$ - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of TAO -***************************************************************************/ - -#ifndef TTCP_SEQUENCE_S_H -#define TTCP_SEQUENCE_S_H - -#include <stdlib.h> -#include <string.h> - -#include "ttcpC.h" - - -class _skel_ttcp_sequence; -typedef _skel_ttcp_sequence *_skel_ttcp_sequence_ptr; -typedef _skel_ttcp_sequence *_skel_ttcp_sequence_ref; - -class _skel_ttcp_sequence: public ttcp_sequence -{ -public: - // pure virtual functions implemented by the implementation class - virtual void sendShortSeq(const ShortSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void sendLongSeq(const LongSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void sendDoubleSeq(const DoubleSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void sendOctetSeq(const OctetSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void sendCharSeq(const CharSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void sendStructSeq(const StructSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void start_timer(CORBA_Environment &) = 0; - virtual void stop_timer(CORBA_Environment &) = 0; - - // skeletons that do the upcall - static void _ttcp_sequence_is_a_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendShortSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendLongSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendDoubleSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendOctetSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendCharSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendStructSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_start_timer_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_stop_timer_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); -protected: - _skel_ttcp_sequence(const char *obj_name = 0); - virtual ~_skel_ttcp_sequence() {} -}; - -#endif - - - - diff --git a/TAO/IIOP/tests/Thruput_test/ttcp_decl.h b/TAO/IIOP/tests/Thruput_test/ttcp_decl.h deleted file mode 100644 index 769e4bd2915..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcp_decl.h +++ /dev/null @@ -1,153 +0,0 @@ -// $Id$ - - -/* - * T T C P Header File - * - */ - -/* This file includes all the declarations and prototypes */ - -#ifndef _TTCP_DECL_H_ -#define _TTCP_DECL_H_ - -#include "ttcpC.h" - -/* #define BSD43 */ -/* #define BSD42 */ -/* #define BSD41a */ - - -#include <stdio.h> -#include <signal.h> -#include <ctype.h> -#include <errno.h> -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <malloc.h> -#include <string.h> -#include <stdlib.h> -#include <memory.h> -#include <netinet/tcp.h> -#include <arpa/inet.h> -#include <netdb.h> -#include <sys/time.h> /* struct itimerval */ -#include <limits.h> -#include <sys/un.h> -#include <unistd.h> -#include <iostream.h> -#include <sys/resource.h> - -/* File to be included if Quantify is to be used */ -#if defined (USE_QUANTIFY) -#include <quantify.h> -#endif - - -#if defined(SYSV) -#define bcopy(b1,b2,n) memcpy(b2,b1,n) -#define bzero(b1,n) memset(b1,0,n) -#include <sys/times.h> -#include <sys/param.h> -#endif - -#if defined(SUNOS54) -struct rusage - { - struct timeval ru_utime, ru_stime; - }; -#define RUSAGE_SELF 0 -#else -#include <sys/resource.h> -#endif - -/* define the data types to be sent */ -#define SEND_SHORT ((unsigned long)(1)) -#define SEND_LONG ((unsigned long)(2)) -#define SEND_CHAR ((unsigned long)(3)) -#define SEND_OCTET ((unsigned long)(4)) -#define SEND_DOUBLE ((unsigned long)(5)) -#define SEND_STRUCT ((unsigned long)(6)) -#define SEND_COMPOSITE ((unsigned long)(7)) - -/************** -// Prototypes -***************/ -void err (char *s); -void mes (char *s); -char *outfmt (double b); -//static void getrusage (int ignored, register struct rusage *ru); -static void gettimeofday (struct timeval *tp, struct timezone *zp); -void prep_timer (void); -double read_timer (char *str, int len); -static void prusage (register struct rusage *r0, struct rusage *r1, struct timeval *e, struct timeval *b, char *outp); -static void tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1); -static void tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0); -static void psecs (long l, register char *cp); -void delay (int us); -int mread (int fd, register char *bufp, unsigned n); -int Nread (int fd, void *buf, int count); -int Nwrite (int fd, void *buf, int count); -void FillPattern(register char *cp, register int bufLen, unsigned long dt); -void PrintStats(); -int SetSocketBufferSize(int size, unsigned short isTrans); -int SetNoDelay(); -void ProcessArguments(int argc, char **argv, unsigned short isTrans); - -/* Global variables defined here as extern */ -extern int fromlen; -extern int domain; /* Default is to use Internet domain sockets. */ -extern char *domainname; /* Rendezvous address for UNIX domain sockets. */ -extern int fd; /* fd of network socket */ - -extern int buflen; /* length of buffer */ -extern char *buf; /* ptr to dynamic buffer */ -extern int nbuf; /* number of buffers to send in sinkmode */ - -extern int bufoffset; /* align buffer to this */ -extern int bufalign; /* modulo this */ - -extern int udp; /* 0 = tcp, !0 = udp */ -extern int options; /* socket options */ -extern int one; /* for 4.3 BSD style setsockopt() */ -extern short port; /* TCP port number */ -extern char *host; /* ptr to name of host */ -extern int trans; /* 0=receive, !0=transmit mode */ -extern int sinkmode; /* 0=normal I/O, !0=sink/source mode */ -extern int verbose; /* 0=print basic info, 1=print cpu rate, proc - * resource usage. */ -extern int nodelay; /* set TCP_NODELAY socket option */ -extern int b_flag; /* use mread() */ -extern int sockbufsize; /* socket buffer size to use */ -extern int new_line; /* This is a special flag */ -extern int write_to_file; /* indecates writing to file (default)*/ -extern char fmt; /* output format:k=kilobits,K=kilobytes, - * m = megabits, M = megabytes, - * g = gigabits, G = gigabytes */ -extern int touchdata; /* access data after reading */ - -extern struct hostent *addr; -extern int errno; -extern int optind; -extern char *optarg; -extern char *title; - -extern char stats[128]; -extern unsigned long srcDataSize; /* Total amount of source data */ -extern unsigned long nbytes; /* bytes on net */ -extern unsigned long numCalls; /* # of I/O system calls */ -extern double cput, realt; /* user, real time (seconds) */ -extern unsigned long dt; - -extern unsigned short isDone; - -/* declare struct variables for various message types */ -extern ttcp_sequence::ShortSeq *sseq; -extern ttcp_sequence::LongSeq *lseq; -extern ttcp_sequence::OctetSeq *oseq; -extern ttcp_sequence::DoubleSeq *dseq; -extern ttcp_sequence::CharSeq *cseq; -extern ttcp_sequence::StructSeq *Sseq; - -#endif diff --git a/TAO/IIOP/tests/Thruput_test/ttcp_i.cpp b/TAO/IIOP/tests/Thruput_test/ttcp_i.cpp deleted file mode 100644 index d98fcd1b4b3..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcp_i.cpp +++ /dev/null @@ -1,90 +0,0 @@ -// $Id$ - -#include "ttcp_i.h" -#include <iostream.h> - -/* the ttcp_i class implementation */ -ttcp_sequence_i::ttcp_sequence_i(const char *obj_name) - :_skel_ttcp_sequence(obj_name) -{ - this->nbytes_ = 0; - numCalls = 0; -} - - -void -ttcp_sequence_i::start_timer (CORBA_Environment &IT_env) -{ - this->nbytes_ = 0; - ::prep_timer (); -} - -void -ttcp_sequence_i::stop_timer (CORBA_Environment &IT_env) -{ - (void) ::read_timer (stats, sizeof (stats)); - ::nbytes = this->nbytes_; - ::PrintStats(); - // reset - this->nbytes_ = 0; - numCalls = 0; -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); - ACE_Reactor::end_event_loop(); - cerr << "*********** just before exiting " << endl; -#endif -} - -void -ttcp_sequence_i::sendShortSeq(const ttcp_sequence::ShortSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA_Short); -} - -void -ttcp_sequence_i::sendLongSeq(const ttcp_sequence::LongSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA_Long) ; -} - -void -ttcp_sequence_i::sendOctetSeq(const ttcp_sequence::OctetSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA_Octet) ; -} - -void -ttcp_sequence_i::sendDoubleSeq(const ttcp_sequence::DoubleSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA_Double) ; -} - -void -ttcp_sequence_i::sendCharSeq(const ttcp_sequence::CharSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA_Char) ; -} - -void -ttcp_sequence_i::sendStructSeq(const ttcp_sequence::StructSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(PerfStruct) ; -#ifdef DEBUG - // cout << "Bytes received so far = " << this->nbytes_ << endl; -#endif -} - - - - - - - - - diff --git a/TAO/IIOP/tests/Thruput_test/ttcp_i.h b/TAO/IIOP/tests/Thruput_test/ttcp_i.h deleted file mode 100644 index 71d2266e334..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcp_i.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ttcp_i.h -// -// This header file provides facility to use it either as a BOA approach or as -// a TIE approach. -// -#if !defined (TTCP_I_H) -#define TTCP_I_H - -#include "ttcp_decl.h" -#include "ttcpS.h" - -/* define the data types to be sent */ -#define SEND_SHORT ((unsigned long)(1)) -#define SEND_LONG ((unsigned long)(2)) -#define SEND_CHAR ((unsigned long)(3)) -#define SEND_OCTET ((unsigned long)(4)) -#define SEND_DOUBLE ((unsigned long)(5)) -#define SEND_STRUCT ((unsigned long)(6)) - - -class ttcp_sequence_i: public _skel_ttcp_sequence -{ -public: - ttcp_sequence_i(const char *obj_name = 0); - - virtual void sendShortSeq (const ttcp_sequence::ShortSeq& ttcp_seq, - CORBA_Environment &IT_env); - virtual void sendLongSeq (const ttcp_sequence::LongSeq& ttcp_seq, - CORBA_Environment &IT_env); - virtual void sendDoubleSeq (const ttcp_sequence::DoubleSeq& ttcp_seq, - CORBA_Environment &IT_env); - virtual void sendCharSeq (const ttcp_sequence::CharSeq& ttcp_seq, - CORBA_Environment &IT_env); - virtual void sendStructSeq (const ttcp_sequence::StructSeq& ttcp_seq, - CORBA_Environment &IT_env); - virtual void sendOctetSeq (const ttcp_sequence::OctetSeq& ttcp_seq, - CORBA_Environment &IT_env); - - /* Routines to calculate the time required to transfer */ - virtual void start_timer (CORBA_Environment &IT_env); - virtual void stop_timer (CORBA_Environment &IT_env); - -private: - unsigned long nbytes_; -}; - -#endif // defined (TTCP_I_H) - diff --git a/TAO/IIOP/tests/Thruput_test/utils.cpp b/TAO/IIOP/tests/Thruput_test/utils.cpp deleted file mode 100644 index f1e30507799..00000000000 --- a/TAO/IIOP/tests/Thruput_test/utils.cpp +++ /dev/null @@ -1,561 +0,0 @@ -// $Id$ - -#include "ttcp_decl.h" - -int SetSocketBufferSize(int size, unsigned short isTrans) -{ - // go thru open file descriptors and check if its is a socket and - // if so, set its socket size to "size" - struct rlimit rlm; - memset(&rlm, 0, sizeof(struct rlimit)); - (void) getrlimit(RLIMIT_NOFILE, &rlm); - cout << "Total file descriptors = " << rlm.rlim_max << endl; - for (int i=3; i < rlm.rlim_max; i++){ - if (isTrans) - (void) setsockopt(i, SOL_SOCKET, SO_SNDBUF, - (char *) &size, sizeof(size)); - else - (void) setsockopt(i, SOL_SOCKET, SO_RCVBUF, - (char *) &size, sizeof(size)); - } - return 1; -} - -void -err (char *s) -{ - fprintf (stderr, "ttcp%s: ", trans ? "-t" : "-r"); - perror (s); - fprintf (stderr, "errno=%d\n", errno); - exit (1); -} - -void -mes (char *s) -{ - fprintf (stderr, "ttcp%s: %s\n", trans ? "-t" : "-r", s); -} - -char * -outfmt (double b) -{ - static char obuf[50]; - switch (fmt) - { - case 'G': - sprintf (obuf, "%.2f GB", b / 1024.0 / 1024.0 / 1024.0); - break; - default: - case 'K': - sprintf (obuf, "%.2f KB", b / 1024.0); - break; - case 'M': - sprintf (obuf, "%.2f MB", b / 1024.0 / 1024.0); - break; - case 'g': - sprintf (obuf, "%.2f Gbit", b * 8.0 / 1024.0 / 1024.0 / 1024.0); - break; - case 'k': - sprintf (obuf, "%.2f Kbit", b * 8.0 / 1024.0); - break; - case 'm': - sprintf (obuf, "%.2f Mbit", b * 8.0 / 1024.0 / 1024.0); - break; - } - return obuf; -} - -static struct itimerval itime0; /* Time at which timing started */ -static struct rusage ru0; /* Resource utilization at the start */ - -#if defined(SYSV) -/*ARGSUSED */ -static void -getrusage (int ignored, register struct rusage *ru) -{ - struct tms buf; - - times (&buf); - - /* Assumption: HZ <= 2147 (LONG_MAX/1000000) */ - ru->ru_stime.tv_sec = buf.tms_stime / HZ; - ru->ru_stime.tv_usec = ((buf.tms_stime % HZ) * 1000000) / HZ; - ru->ru_utime.tv_sec = buf.tms_utime / HZ; - ru->ru_utime.tv_usec = ((buf.tms_utime % HZ) * 1000000) / HZ; -} - -/*ARGSUSED */ -static void -gettimeofday (struct timeval *tp, struct timezone *zp) -{ - tp->tv_sec = time (0); - tp->tv_usec = 0; -} -#endif /* SYSV */ -/* - * P R E P _ T I M E R - */ -void -prep_timer () -{ - itime0.it_interval.tv_sec = 0; - itime0.it_interval.tv_usec = 0; - itime0.it_value.tv_sec = LONG_MAX / 22; /* greatest possible value , itimer() count backwards */ - itime0.it_value.tv_usec = 0; - - - getrusage (RUSAGE_SELF, &ru0); - - /* Init REAL Timer */ - if (setitimer (ITIMER_REAL, &itime0, NULL)) - { - perror ("Setting 'itimer' REAL failed"); - return; - } - -} - -/* - * R E A D _ T I M E R - * - */ -double -read_timer (char *str, int len) -{ - struct itimerval itimedol; - struct rusage ru1; - struct timeval td; - struct timeval tend, tstart; - char line[132]; - - getrusage (RUSAGE_SELF, &ru1); - - if (getitimer (ITIMER_REAL, &itimedol)) - { - perror ("Getting 'itimer' REAL failed"); - return (0.0); - } - - prusage (&ru0, &ru1, &itime0.it_value, &itimedol.it_value, line); - (void) strncpy (str, line, len); - - /* Get real time */ - tvsub (&td, &itime0.it_value, &itimedol.it_value); - realt = td.tv_sec + ((double) td.tv_usec) / 1000000; - - /* Get CPU time (user+sys) */ - tvadd (&tend, &ru1.ru_utime, &ru1.ru_stime); - tvadd (&tstart, &ru0.ru_utime, &ru0.ru_stime); - tvsub (&td, &tend, &tstart); - cput = td.tv_sec + ((double) td.tv_usec) / 1000000; - if (cput < 0.00001) - cput = 0.00001; - return (cput); -} - -static void -prusage (register struct rusage *r0, struct rusage *r1, - struct timeval *e, struct timeval *b, char *outp) -{ - struct timeval tdiff; - register time_t t; - register char *cp; - register int i; - int ms; - - t = (r1->ru_utime.tv_sec - r0->ru_utime.tv_sec) * 100 + - (r1->ru_utime.tv_usec - r0->ru_utime.tv_usec) / 10000 + - (r1->ru_stime.tv_sec - r0->ru_stime.tv_sec) * 100 + - (r1->ru_stime.tv_usec - r0->ru_stime.tv_usec) / 10000; - ms = (e->tv_sec - b->tv_sec) * 100 + (e->tv_usec - b->tv_usec) / 10000; - -#define END(x) {while(*x) x++;} -#if defined(SYSV) - cp = "%Uuser %Ssys %Ereal %P"; -#else -#if defined(sgi) /* IRIX 3.3 will show 0 for %M,%F,%R,%C */ - cp = "%Uuser %Ssys %Ereal %P %Mmaxrss %F+%Rpf %Ccsw"; -#else - cp = "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw"; -#endif -#endif - for (; *cp; cp++) - { - if (*cp != '%') - *outp++ = *cp; - else if (cp[1]) - switch (*++cp) - { - - case 'U': - tvsub (&tdiff, &r1->ru_utime, &r0->ru_utime); - sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'S': - tvsub (&tdiff, &r1->ru_stime, &r0->ru_stime); - sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'E': - psecs (ms / 100, outp); - END (outp); - break; - - case 'P': - sprintf (outp, "%d%%", (int) (t * 100 / ((ms ? ms : 1)))); - END (outp); - break; - -#if !defined(SYSV) - case 'W': - i = r1->ru_nswap - r0->ru_nswap; - sprintf (outp, "%d", i); - END (outp); - break; - - case 'X': - sprintf (outp, "%d", t == 0 ? 0 : (r1->ru_ixrss - r0->ru_ixrss) / t); - END (outp); - break; - - case 'D': - sprintf (outp, "%d", t == 0 ? 0 : - (r1->ru_idrss + r1->ru_isrss - (r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'K': - sprintf (outp, "%d", t == 0 ? 0 : - ((r1->ru_ixrss + r1->ru_isrss + r1->ru_idrss) - - (r0->ru_ixrss + r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'M': - sprintf (outp, "%d", r1->ru_maxrss / 2); - END (outp); - break; - - case 'F': - sprintf (outp, "%d", r1->ru_majflt - r0->ru_majflt); - END (outp); - break; - - case 'R': - sprintf (outp, "%d", r1->ru_minflt - r0->ru_minflt); - END (outp); - break; - - case 'I': - sprintf (outp, "%d", r1->ru_inblock - r0->ru_inblock); - END (outp); - break; - - case 'O': - sprintf (outp, "%d", r1->ru_oublock - r0->ru_oublock); - END (outp); - break; - case 'C': - sprintf (outp, "%d+%d", r1->ru_nvcsw - r0->ru_nvcsw, - r1->ru_nivcsw - r0->ru_nivcsw); - END (outp); - break; -#endif /* !SYSV */ - } - } - *outp = '\0'; -} - -static void -tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1) -{ - - tsum->tv_sec = t0->tv_sec + t1->tv_sec; - tsum->tv_usec = t0->tv_usec + t1->tv_usec; - if (tsum->tv_usec > 1000000) - tsum->tv_sec++, tsum->tv_usec -= 1000000; -} - -static void -tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0) -{ - - tdiff->tv_sec = t1->tv_sec - t0->tv_sec; - tdiff->tv_usec = t1->tv_usec - t0->tv_usec; - if (tdiff->tv_usec < 0) - tdiff->tv_sec--, tdiff->tv_usec += 1000000; -} - -static void -psecs (long l, register char *cp) -{ - register int i; - - i = l / 3600; - if (i) - { - sprintf (cp, "%d:", i); - END (cp); - i = l % 3600; - sprintf (cp, "%d%d", (i / 60) / 10, (i / 60) % 10); - END (cp); - } - else - { - i = l; - sprintf (cp, "%d", i / 60); - END (cp); - } - i %= 60; - *cp++ = ':'; - sprintf (cp, "%d%d", i / 10, i % 10); -} - -/* - * N R E A D - */ -int -Nread (int fd, void *buf, int count) -{ - struct sockaddr_in from; - int len = sizeof (from); - register int cnt; - if (udp) - { - cnt = recvfrom (fd, (char *) buf, count, 0, (struct sockaddr *) &from, &len); - numCalls++; - } - else - { - if (b_flag) - cnt = mread (fd, (char *) buf, count); /* fill buf */ - else - { - cnt = read (fd, buf, count); - numCalls++; - } - if (touchdata && cnt > 0) - { - register int c = cnt, sum; - register char *b = (char *) buf; - while (c--) - sum += *b++; - } - } - return (cnt); -} - - -/* - * N W R I T E - */ -int -Nwrite (int fd, void *buf, int count) -{ - return 0; -} - -void -delay (int us) -{ - struct timeval tv; - - tv.tv_sec = 0; - tv.tv_usec = us; - (void) select (1, (fd_set *) 0, (fd_set *) 0, (fd_set *) 0, &tv); -} - -/* - * M R E A D - * - * This function performs the function of a read(II) but will - * call read(II) multiple times in order to get the requested - * number of characters. This can be necessary because - * network connections don't deliver data with the same - * grouping as it is written with. Written by Robert S. Miles, BRL. - */ -int -mread (int fd, register char *bufp, unsigned n) -{ - register unsigned count = 0; - register int nread; - - do - { - nread = read (fd, bufp, n - count); - numCalls++; - if (nread < 0) - { - perror ("ttcp_mread"); - return (-1); - } - if (nread == 0) - return ((int) count); - count += (unsigned) nread; - bufp += nread; - } - while (count < n); - - return ((int) count); -} - -void -FillPattern (register char *cp, register int bufLen, unsigned long dt) -{ - unsigned long - num, i; - - switch(dt){ - case SEND_SHORT: - { - register short *SeqPtr = (short *)cp; - num = bufLen/sizeof(short); - for (i=0; i < num; i++) - SeqPtr[i] = (short)lrand48(); - sseq = new ttcp_sequence::ShortSeq(num,num, SeqPtr); - } - break; - case SEND_LONG: - { - register long *SeqPtr = (long *)cp; - num = bufLen/sizeof(long); - for (i=0; i < num; i++) - SeqPtr[i] = lrand48(); - lseq = new ttcp_sequence::LongSeq(num, num, SeqPtr); - } - break; - case SEND_DOUBLE: - { - register double *SeqPtr = (double *)cp; - num = bufLen/sizeof(double); - for (i=0; i < num; i++) - SeqPtr[i] = drand48(); - dseq = new ttcp_sequence::DoubleSeq(num, num, SeqPtr); - } - break; - case SEND_CHAR: - { - register CORBA_Char *SeqPtr = (CORBA_Char *)cp; - register char c = 0; - num = bufLen/sizeof(char); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - cseq = new ttcp_sequence::CharSeq(num, num, SeqPtr); - } - break; - case SEND_STRUCT: - { - register PerfStruct *SeqPtr = (PerfStruct *)cp; - register char c = 0; - num = bufLen/sizeof(PerfStruct); - for (i=0; i < num; i++){ - SeqPtr[i].s = (short)lrand48(); - SeqPtr[i].l = lrand48(); - SeqPtr[i].d = drand48(); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].c = (c++ & 0x7f); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].o = (unsigned char)(c++ & 0x7f); - } - Sseq = new ttcp_sequence::StructSeq(num, num, SeqPtr); - - } - break; - case SEND_OCTET: - default: - { - register CORBA_Octet *SeqPtr = (CORBA_Octet *)cp; - register char c = 0; - num = bufLen/sizeof(CORBA_Octet); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - oseq = new ttcp_sequence::OctetSeq(num, num, SeqPtr); - } - break; - } -} -void PrintStats() -{ - if (cput <= 0.0) - cput = 0.001; - if (realt <= 0.0) - realt = 0.001; - -//#if defined (LM_RESULTS) - if (trans && (title != 0)) - { - double tmp; - FILE *outFile; - char filename[BUFSIZ]; - - strcpy(filename, title); - switch(dt){ - case SEND_SHORT: - strcat(filename, ".shortSeq.results"); - break; - case SEND_LONG: - strcat(filename, ".longSeq.results"); - break; - case SEND_DOUBLE: - strcat(filename, ".doubleSeq.results"); - break; - case SEND_CHAR: - strcat(filename, ".charSeq.results"); - break; - case SEND_STRUCT: - strcat(filename, ".structSeq.results"); - break; - case SEND_COMPOSITE: - strcat(filename, ".compositeSeq.results"); - break; - case SEND_OCTET: - default: - strcat(filename, ".octetSeq.results"); - break; - } - outFile = fopen (filename, "a+"); - if (new_line) - fprintf (outFile, "\n -l %ldk \t", buflen / 1024); - tmp = ((double) nbytes) / realt; - fprintf (outFile, "%.2f ", tmp * 8.0 / 1024.0 / 1024.0); - fclose (outFile); - } -//#endif - - fprintf (stdout, - "ttcp%s: %ld bytes in %.2f real seconds = %s/sec +++\n", - trans ? "-t" : "-r", - nbytes, realt, outfmt (((double) nbytes) / realt)); - if (verbose) - { - fprintf (stdout, - "ttcp%s: %ld bytes in %.2f CPU seconds = %s/cpu sec\n", - trans ? "-t" : "-r", - nbytes, cput, outfmt (((double) nbytes) / cput)); - } - fprintf (stdout, - "ttcp%s: %d Server Method calls, msec/call = %.2f, calls/sec = %.2f\n", - trans ? "-t" : "-r", - numCalls, - 1024.0 * realt / ((double) numCalls), - ((double) numCalls) / realt); - fprintf (stdout, "ttcp%s: %s\n", trans ? "-t" : "-r", stats); - if (verbose) - { - fprintf (stdout, - "ttcp%s: buffer address %#x\n", - trans ? "-t" : "-r", - buf); - } -} |