diff options
Diffstat (limited to 'performance-tests/TTCP')
39 files changed, 0 insertions, 6425 deletions
diff --git a/performance-tests/TTCP/ACE-C++/How_to_run_tests b/performance-tests/TTCP/ACE-C++/How_to_run_tests deleted file mode 100644 index 1346a745504..00000000000 --- a/performance-tests/TTCP/ACE-C++/How_to_run_tests +++ /dev/null @@ -1,29 +0,0 @@ -// ACE version -// -// - -// HOSTNAMES: -// for our tests, encip1-tango.cs.wustl.edu was the receiver hostname used for atm transfers -// tango.cs.wustl.edu was the receiver hostname used for ethernet transfers -// substitute the proper receiver hostname for your system. - -// Results: -// These examples show the result files being stored in a /results directory off -// the current path. This can be set to whatever you like. - -// ATM with 64k receiver buffers -Receiver_Host: repeat 100 server -r -s -fm -p 10002 -b 65536 -Sender_Host: run_test 64 encip1-tango.cs.wustl.edu ./results/ace.atm.64 10002 - or: client -fm -s -t -l 1048576 -n 100 -h encip1-tango.cs.wustl.edu -L ./results/ace.atm.64 -p 10002 - -// ATM with 8k receiver buffers -Receiver_Host: repeat 100 wrapper-new-ttcp -r -s -fm -p 10002 -Sender_Host: run_test 64 encip1-tango.cs.wustl.edu ./results/ace.atm.8 10002 - -// ETHERNET with 64k receiver buffers -Receiver_Host: repeat 100 wrapper-new-ttcp -r -s -fm -p 10002 -b 65536 -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/ace.ethernet.64 10002 - -// ETHERNET with 8k receiver buffers -Receiver_Host: repeat 100 wrapper-new-ttcp -r -s -fm -p 10002 -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/ace.ethernet.8 10002 diff --git a/performance-tests/TTCP/ACE-C++/Makefile b/performance-tests/TTCP/ACE-C++/Makefile deleted file mode 100644 index 8e82df3af53..00000000000 --- a/performance-tests/TTCP/ACE-C++/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the wrapper-new-ttcp -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = wrapper-new-ttcp - -LSRC = $(addsuffix .cpp,$(FILES)) -LOBJ = $(addsuffix .o,$(FILES)) - -LDLIBS = $(addprefix .obj/,$(LOBJ)) -Bstatic -Bdynamic - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VOBJS) $(VBIN) - -#---------------------------------------------------------------------------- -# 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 targets -#---------------------------------------------------------------------------- - -LINK_COMMAND = quantify -cache-dir=/$(IR)/quantify - -CCFLAGS = -O2 -DLM_RESULTS -#CCFLAGS = -g -DLM_RESULTS -#DCCFLAGS = -g - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - - - diff --git a/performance-tests/TTCP/ACE-C++/run_test b/performance-tests/TTCP/ACE-C++/run_test deleted file mode 100644 index e07e6ed0c80..00000000000 --- a/performance-tests/TTCP/ACE-C++/run_test +++ /dev/null @@ -1,35 +0,0 @@ -# test_run 64 enatm0-kavita.cs.wustl.edu title 10002 -# repeat 100 wrapper-new-ttcp -r -s -fm -p 10002 -b 65536 -#!/bin/csh -f -if ($#argv != 4) then - echo "Usage: sclt <Max msg size> <destination> <TitleOfThisTest> <port>" $4 - exit 1 -endif -# -@ msize=1024 -@ limit= ($argv[1] * 1024) -#echo $limit -#echo $msize -echo "Iteration#" 1 ": wrapper-new-ttcp -fm -s -t -l" $msize "-h" $2 "-L" $3 "-p" $4 -wrapper-new-ttcp -fm -s -t -l $msize -h $2 -x -L $3 -p $4 -sleep 1 -set flag=0 -while ($msize <= $limit) - if ($flag == 0) goto label - echo "Iteration#" 1 ": wrapper-new-ttcp -fm -s -t -l" $msize "-h" $2 "-x -L" $3 "-p" $4 - wrapper-new-ttcp -fm -s -t -l $msize -h $2 -x -L $3 -p $4 - sleep 1 - label: - set flag=1 - foreach i (2 3 4 5) - echo "Iteration#" $i ": wrapper-new-ttcp -fm -s -t -l" $msize "-h" $2 "-L " $3 "-p" $4 - wrapper-new-ttcp -fm -s -t -l $msize -h $2 -L $3 -p $4 - sleep 1 - end - echo "---------------------------" - @ msize = ($msize * 2) -end - -echo " " -echo "Done at:" -date diff --git a/performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp b/performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp deleted file mode 100644 index 2033dba7c59..00000000000 --- a/performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp +++ /dev/null @@ -1,947 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -/* - * T T C P . C - * - * Test TCP connection. Makes a connection on port 5001 - * and transfers fabricated buffers or data copied from stdin. - * - * Usable on 4.2, 4.3, and 4.1a systems by defining one of - * BSD42 BSD43 (BSD41a) - * Machines using System V with BSD sockets should define SYSV. - * - * Modified for operation under 4.2BSD, 18 Dec 84 - * T.C. Slattery, USNA - * Minor improvements, Mike Muuss and Terry Slattery, 16-Oct-85. - * Modified in 1989 at Silicon Graphics, Inc. - * catch SIGPIPE to be able to print stats when receiver has died - * for tcp, don't look for sentinel during reads to allow small transfers - * increased default buffer size to 8K, nbuf to 2K to transfer 16MB - * moved default port to 5001, beyond IPPORT_USERRESERVED - * make sinkmode default because it is more popular, - * -s now means don't sink/source - * count number of read/write system calls to see effects of - * blocking from full socket buffers - * for tcp, -D option turns off buffered writes (sets TCP_NODELAY sockopt) - * buffer alignment options, -A and -O - * print stats in a format that's a bit easier to use with grep & awk - * for SYSV, mimic BSD routines to use most of the existing timing code - * Modified by Steve Miller of the University of Maryland, College Park - * -b sets the socket buffer size (SO_SNDBUF/SO_RCVBUF) - * Modified Sept. 1989 at Silicon Graphics, Inc. - * restored -s sense at request of tcs@brl - * Modified Oct. 1991 at Silicon Graphics, Inc. - * use getopt(3) for option processing, add -f and -T options. - * SGI IRIX 3.3 and 4.0 releases don't need #define SYSV. - * Modified Aug.1993 at University Paderborn, Germany - * some SVR4 changes and time functions changed to itimer() calls - * Modified by Douglas C. Schmidt September 28, 1994 - * added support for testing UNIX domain socket performance - * Modified by Tim Harrison May, 1995 - * added support for ACE wrappers - * Distribution Status - - * Public Domain. Distribution Unlimited. - */ -#ifndef lint -static char RCSid[] = "ttcp.c $Revision$"; -#endif - -/* #define BSD43 */ -/* #define BSD42 */ -/* #define BSD41a */ -#define SYSV /* required on SGI IRIX releases before 3.3 */ - -#include <ace/SOCK_Connector.h> -ACE_SOCK_Connector connector_factory; - -#include <ace/SOCK_Acceptor.h> -ACE_SOCK_Acceptor acceptor_factory; - -#include <ace/INET_Addr.h> -ACE_INET_Addr address; - -#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> - -#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> -struct rusage - { - struct timeval ru_utime, ru_stime; - }; -#define RUSAGE_SELF 0 - -#else -#include <sys/resource.h> -#endif - -struct sockaddr_in sinme; -struct sockaddr_un sunme; -struct sockaddr_in sinhim; -struct sockaddr_un sunhim; -struct sockaddr_in frominet; -struct sockaddr_un fromunix; - -struct Session_Control_Message -{ - long nbuf_; - // number of buffers that will be sent this round. - long size_; - // size of the buffers that will be sent -} session_control_buf; - -struct Data_Control_Message -{ - long size_; - char data_; -} *message_buf; - -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 data_buf_len = 1024 * 1024 * 2; // length of data portion -long total_msg_len; // length of entire message -char *data_buf; // pointer to data portion -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 */ -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; -extern int errno; -extern int optind; -extern char *optarg; - -char Usage[] = "\ -Usage: ttcp -t [-options] host [ < in ]\n\ - ttcp -r [-options > out]\n\ -Common options:\n\ - -l ## length of bufs read from or written to network (default 8192)\n\ - -u use UDP instead of TCP\n\ - -U use UNIX domain sockets instead of Internet domain sockets\n\ - -p ## port number to send to or listen at (default 5001)\n\ - -s -t: source a pattern to network\n\ - -r: sink (discard) all data from network\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\ -Options specific to -t:\n\ - -n## number of source bufs written to network (default 2048)\n\ - -D don't buffer TCP writes (sets TCP_NODELAY socket option)\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\ -"; - -char stats[128]; -unsigned long nbytes; /* bytes on net */ -unsigned long numCalls = 0; /* # of I/O system calls */ -double cput, realt; /* user, real time (seconds) */ - -void err (char *s); -void mes (char *s); -void pattern (register char *cp, register int cnt); -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 (ACE_SOCK_Stream &s, void *buf, int count); -int Nwrite (ACE_SOCK_Stream &s, void *buf, int count); - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else -void -sigpipe () -#endif -{ -} - -char *title = 0; -int new_line = 0; - -int -main (int argc, char *argv[]) -{ - ACE_SOCK_Stream connection_stream; - unsigned long addr_tmp; - int c; - - if (argc < 2) - goto usage; - - while ((c = getopt (argc, argv, "drstU:uvBDTb:f:l:n:p:A:O:L:xh:")) != -1) - { - switch (c) - { - - case 'h': - host = optarg; - break; - case 'x': - new_line = 1; - break; - case 'L': - title = optarg; - break; - case 'B': - b_flag = 1; - break; - case 't': - trans = 1; - break; - case 'r': - trans = 0; - break; - case 'd': - options |= SO_DEBUG; - 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': - data_buf_len = atoi (optarg); - break; - case 's': - sinkmode = !sinkmode; - break; - case 'p': - port = atoi (optarg); - break; - case 'U': - domain = PF_UNIX; - domainname = optarg; - break; - case 'u': - udp = 1; - 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 'T': - touchdata = 1; - break; - - default: - goto usage; - } - } - - /* if transmitter, create remote address to transmit to. */ - - if (trans) - { - if (address.set (port, host) == -1) - perror ("address.set"), exit (1); - } - - /* else, receiver create address to listen on */ - else - { - address.set (port); - } - - total_msg_len = sizeof (long) + data_buf_len; - - // allocate the buffer - message_buf = (Data_Control_Message *) malloc (total_msg_len); - if (message_buf == 0) - err ("malloc"); - -// if (bufalign != 0) -// message_buf += (bufalign - ((int) message_buf % bufalign) + bufoffset) % bufalign; - - // let's go ahead and set the control message for every send right now - message_buf->size_ = data_buf_len; - - session_control_buf.nbuf_ = nbuf; - session_control_buf.size_ = data_buf_len; - - // - // print out option values for trans and receiver - // - - if (trans) - { - fprintf (stdout, - "ttcp-t: data_buf_len=%d, nbuf=%d, align=%d/%d, port=%d", - data_buf_len, nbuf, bufalign, bufoffset, port); - if (sockbufsize) - fprintf (stdout, ", sockbufsize=%d", sockbufsize); - fprintf (stdout, " %s -> %s\n", - domain == PF_INET ? (udp ? "udp" : "tcp") : "unix", - host == 0 ? domainname : host); - } - else // receiver - { - fprintf (stdout, - "ttcp-r: data_buf_len=%d, nbuf=%d, align=%d/%d, port=%d", - data_buf_len, nbuf, bufalign, bufoffset, port); - if (sockbufsize) - fprintf (stdout, ", sockbufsize=%d", sockbufsize); - fprintf (stdout, " %s\n", domain == PF_INET ? (udp ? "udp" : "tcp") : "unix"); - } - - mes ("socket"); - - // - // connect and accept - // - - if (!udp) - { - signal (SIGPIPE, (SIG_TYP) sigpipe); - - /* the transmitter will set options and connect to receiver */ - if (trans) - { - if (connector_factory.connect (connection_stream, address) == -1) - perror ("connection failed"), exit (1); - fprintf (stdout, - "ttcp-t: data_buf_len=%d, nbuf=%d, align=%d/%d, port=%d", - data_buf_len, nbuf, bufalign, bufoffset, port); - - // turn off weird ack things - if (nodelay) - { - struct protoent *p = getprotobyname ("tcp"); - - if (p && connection_stream.set_option (p->p_proto, - TCP_NODELAY, - (char *)& one, - sizeof (one))) - err ("setsockopt: nodelay"); - mes ("nodelay"); - } - if (sockbufsize) - { - if (connection_stream.set_option (SOL_SOCKET, - SO_SNDBUF, - (char *) &sockbufsize, - sizeof sockbufsize) == -1) - err ("acceptor_factory.set_option"); - mes ("sndbuf"); - } - } - - /* receiver will listen for connections from the transmitter */ - else - { - if (acceptor_factory.open (address, 1) == -1) - perror ("acceptor open"), exit (1); - - ACE_INET_Addr remote_address; - - if (acceptor_factory.accept (connection_stream, - (ACE_Addr *) &remote_address) == -1) - perror ("acceptor accept"), exit (1); - - // set the window size - if (sockbufsize) - { - if (connection_stream.set_option (SOL_SOCKET, - SO_RCVBUF, - (char *) &sockbufsize, - sizeof sockbufsize) == -1) - err ("acceptor_factory.set_option"); - mes ("rcvbuf"); - } - - fprintf (stderr, "ttcp-r: accept from %s\n", remote_address.get_host_name()); - } - } - - // - // start timer - // - - errno = 0; - if (trans) - { - pattern (& (message_buf->data_), data_buf_len); - prep_timer (); - - ACE_DEBUG ((LM_DEBUG, "Sending session control message" - " nbuf %d, size %d\n", session_control_buf.nbuf_, - session_control_buf.size_)); - if (connection_stream.send_n ((char *) &session_control_buf, - sizeof (Session_Control_Message)) - != sizeof (Session_Control_Message)) - ACE_ERROR_RETURN ((LM_ERROR, "%p send session control failed\n", - "ttcp"), -1); - - long ack; - int send_result; - while (nbuf--) - { - send_result = connection_stream.send_n ((char *) message_buf, total_msg_len); - if (send_result != total_msg_len) - ACE_ERROR_RETURN ((LM_ERROR, "%p only sent %d of %d bytes on call %d\n", - "ttcp", send_result, total_msg_len, numCalls + 1), -1); - numCalls++; - nbytes += data_buf_len; - - if (connection_stream.recv_n ((char *) &ack, sizeof ack) - != sizeof ack) - ACE_ERROR_RETURN ((LM_ERROR, "%p recv of ack failed\n", - "ttcp"), -1); - - if (ack != data_buf_len) - ACE_DEBUG ((LM_DEBUG, "%received ack for only %d bytes\n", ack)); - } - } - else - { - prep_timer (); - - if (connection_stream.recv_n ((char *) &session_control_buf, - sizeof (Session_Control_Message)) - != sizeof (Session_Control_Message)) - ACE_ERROR_RETURN ((LM_ERROR, "%p recv session control failed\n", - "ttcp"), -1); - - ACE_DEBUG ((LM_DEBUG, "received session control message" - " nbuf %d, size %d\n", session_control_buf.nbuf_, - session_control_buf.size_)); - - nbuf = session_control_buf.nbuf_; - // ignore session_control_buf.size_ for now - - long cnt; - - while (nbuf--) - { - if (connection_stream.recv_n ((char *) message_buf, sizeof (long)) - != sizeof (long)) - ACE_ERROR_RETURN ((LM_ERROR, "%p recv data control failed\n", - "ttcp"), -1); - - cnt = connection_stream.recv_n (& (message_buf->data_), message_buf->size_); - if (cnt != message_buf->size_) - ACE_ERROR_RETURN ((LM_ERROR, "recv data failed\n"), -1); - - numCalls++; - nbytes += cnt; - - if (connection_stream.send_n ((char *) &cnt, sizeof cnt) - != sizeof cnt) - ACE_ERROR_RETURN ((LM_ERROR, "%p send ack failed\n", - "ttcp"), -1); - } - } - - if (errno) - err ("IO"); - - // - // stop the timer - // - - (void) read_timer (stats, sizeof (stats)); - if (udp && trans) - { - (void) Nwrite (connection_stream, message_buf, 4); /* rcvr end */ - (void) Nwrite (connection_stream, message_buf, 4); /* rcvr end */ - (void) Nwrite (connection_stream, message_buf, 4); /* rcvr end */ - (void) Nwrite (connection_stream, message_buf, 4); /* rcvr end */ - } - 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 *fd; - char filename[BUFSIZ]; - ACE_OS::sprintf (filename, "%s.results", title); - fd = fopen(filename,"a+"); - if (new_line) - fprintf(fd,"\n -l %ldk \t", data_buf_len/1024); - tmp = ((double) nbytes) / realt; - fprintf(fd,"%.2f ", tmp * 8.0 / 1024.0 / 1024.0); - fclose(fd); - } -#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 I/O 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", - message_buf); - } - exit (0); - -usage: - fprintf (stderr, Usage); - 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); -} - -void -pattern (register char *cp, register int cnt) -{ - register char c; - c = 0; - while (cnt-- > 0) - { - while (!isprint ((c & 0x7F))) - c++; - *cp++ = (c++ & 0x7F); - } -} - -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 (ACE_SOCK_Stream &s, void *buf, int count) -{ - numCalls++; - return (s.recv (buf, count)); -} - -/* - * N W R I T E - */ -int -Nwrite (ACE_SOCK_Stream &s, void *buf, int count) -{ - numCalls++; - return s.send (buf, count); -} - -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); -} diff --git a/performance-tests/TTCP/C/How_to_run_tests b/performance-tests/TTCP/C/How_to_run_tests deleted file mode 100644 index c08a515a5af..00000000000 --- a/performance-tests/TTCP/C/How_to_run_tests +++ /dev/null @@ -1,30 +0,0 @@ -// C version -// -// - -// HOSTNAMES: -// for our tests, enatm0-tango.cs.wustl.edu was the receiver hostname used for atm transfers -// tango.cs.wustl.edu was the receiver hostname used for ethernet transfers -// substitute the proper receiver hostname for your system. - -// Results: -// These examples show the result files being stored in a /results directory off -// the current path. This can be set to whatever you like. - -// ATM with 32k receiver buffers -Receiver_Host: repeat 100 server -r -s -fm -p 10002 -b 65536 -Sender_Host: run_test 64 encip1-tango.cs.wustl.edu ./results/ace.atm.64 10002 - or: client -fm -s -t -l 1048576 -n 100 -h encip1-tango.cs.wustl.edu -L ./results/ace.atm.64 -p 10002 - -// ATM with 8k receiver buffers -Receiver_Host: repeat 100 new-ttcp -r -s -fm -p 10002 -Sender_Host: run_test 64 enatm0-tango.cs.wustl.edu ./results/c.atm.8 10002 - -// ETHERNET with 64k receiver buffers -Receiver_Host: repeat 100 new-ttcp -r -s -fm -p 10002 -b 65536 -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/c.ethernet.64 10002 - -// ETHERNET with 8k receiver buffers -Receiver_Host: repeat 100 new-ttcp -r -s -fm -p 10002 -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/c.ethernet.8 10002 - diff --git a/performance-tests/TTCP/C/Makefile b/performance-tests/TTCP/C/Makefile deleted file mode 100644 index 1eb569ccf3a..00000000000 --- a/performance-tests/TTCP/C/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the wrapper-new-ttcp -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = new-ttcp - -LSRC = $(addsuffix .cpp,$(FILES)) -LOBJ = $(addsuffix .o,$(FILES)) - -LDLIBS = $(addprefix .obj/,$(LOBJ)) -Bstatic -Bdynamic - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VOBJS) $(VBIN) - -#---------------------------------------------------------------------------- -# 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 targets -#---------------------------------------------------------------------------- - -LINK_COMMAND = quantify -cache-dir=/$(IR)/quantify - -CCFLAGS = -O2 -DLM_RESULTS -#CCFLAGS = -g -DLM_RESULTS -#DCCFLAGS = -g - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - - - diff --git a/performance-tests/TTCP/C/README b/performance-tests/TTCP/C/README deleted file mode 100644 index 137da71bf68..00000000000 --- a/performance-tests/TTCP/C/README +++ /dev/null @@ -1,38 +0,0 @@ - - TTCP for c_version, ACE-wrappers, ORBeline and Orbix - ---------------------------------------------------- - -This is the super-readme file for the "ttcp" code. This directory contains the C, ACE-wrappers, -ORBeline and Orbix versions of ttcp code. To compile the code, you have to do the following: - -1. You should have ACE, ORBeline and Orbix installed in your system and configured correctly. - (see the reference manual for installation and configuration procedure) - -2. Copy this directory (ttcp) in the same directory structure to your disk space. - -3. setup the following environment parameters (before compilation stage): - ACE_ROOT, ORBELINE_ROOT, ORBIX_ROOT, LD_LIBRARY_PATH. - -For example: -ACE_ROOT=/project/adaptive/ACE_wrappers -ORBELINE_ROOT=/project/adaptive/ORBelineV1.2 -ORBIX_ROOT=/project/adaptive/Orbix -LD_LIBRARY_PATH=/project/adaptive/ORBelineV1.2/lib - :/project/adaptive/ACE_wrappers/build/SunOS5.4/src - :/project/adaptive/Orbix/lib - -4. Do make (using GNU make) in this directory level. This will create the executable ttcp - target code for each ttcp version. - -5. Read the README or How_to_run_tests file existing in each directory to know how to use the - executable. - -6. Have fun. - - - -Ehab S. Al-Shaer -6/30/1995 - - - diff --git a/performance-tests/TTCP/C/new-ttcp.cpp b/performance-tests/TTCP/C/new-ttcp.cpp deleted file mode 100644 index f4fe17da814..00000000000 --- a/performance-tests/TTCP/C/new-ttcp.cpp +++ /dev/null @@ -1,981 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -/* - * T T C P . C - * - * Test TCP connection. Makes a connection on port 5001 - * and transfers fabricated buffers or data copied from stdin. - * - * Usable on 4.2, 4.3, and 4.1a systems by defining one of - * BSD42 BSD43 (BSD41a) - * Machines using System V with BSD sockets should define SYSV. - * - * Modified for operation under 4.2BSD, 18 Dec 84 - * T.C. Slattery, USNA - * Minor improvements, Mike Muuss and Terry Slattery, 16-Oct-85. - * Modified in 1989 at Silicon Graphics, Inc. - * catch SIGPIPE to be able to print stats when receiver has died - * for tcp, don't look for sentinel during reads to allow small transfers - * increased default buffer size to 8K, nbuf to 2K to transfer 16MB - * moved default port to 5001, beyond IPPORT_USERRESERVED - * make sinkmode default because it is more popular, - * -s now means don't sink/source - * count number of read/write system calls to see effects of - * blocking from full socket buffers - * for tcp, -D option turns off buffered writes (sets TCP_NODELAY sockopt) - * buffer alignment options, -A and -O - * print stats in a format that's a bit easier to use with grep & awk - * for SYSV, mimic BSD routines to use most of the existing timing code - * Modified by Steve Miller of the University of Maryland, College Park - * -b sets the socket buffer size (SO_SNDBUF/SO_RCVBUF) - * Modified Sept. 1989 at Silicon Graphics, Inc. - * restored -s sense at request of tcs@brl - * Modified Oct. 1991 at Silicon Graphics, Inc. - * use getopt(3) for option processing, add -f and -T options. - * SGI IRIX 3.3 and 4.0 releases don't need #define SYSV. - * Modified Aug.1993 at University Paderborn, Germany - * some SVR4 changes and time functions changed to itimer() calls - * Modified by Douglas C. Schmidt September 28, 1994 - * added support for testing UNIX domain socket performance - * Modified by Tim Harrison May, 1995 - * added support for ACE wrappers - * Distribution Status - - * Public Domain. Distribution Unlimited. - */ -#ifndef lint -static char RCSid[] = "ttcp.c $Revision$"; -#endif - -/* #define BSD43 */ -/* #define BSD42 */ -/* #define BSD41a */ -#define SYSV /* required on SGI IRIX releases before 3.3 */ - -#include <ace/SOCK_Connector.h> -ACE_SOCK_Connector connector_factory; - -#include <ace/SOCK_Acceptor.h> -ACE_SOCK_Acceptor acceptor_factory; - -#include <ace/INET_Addr.h> -ACE_INET_Addr address; - -#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> - -#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> -struct rusage - { - struct timeval ru_utime, ru_stime; - }; -#define RUSAGE_SELF 0 - -#else -#include <sys/resource.h> -#endif - -struct sockaddr_in sinme; -struct sockaddr_un sunme; -struct sockaddr_in sinhim; -struct sockaddr_un sunhim; -struct sockaddr_in frominet; -struct sockaddr_un fromunix; - -int send_n (const void *buf, int len); -int recv_n (void *buf, int len); -int connection_descriptor; - -struct Session_Control_Message -{ - long nbuf_; - // number of buffers that will be sent this round. - long size_; - // size of the buffers that will be sent -} session_control_buf; - -struct Data_Control_Message -{ - long size_; - char data_; -} *message_buf; - -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 data_buf_len = 1024 * 1024 * 2; // length of data portion -long total_msg_len; // length of entire message -char *data_buf; // pointer to data portion -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 */ -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; -extern int errno; -extern int optind; -extern char *optarg; - -char Usage[] = "\ -Usage: ttcp -t [-options] host [ < in ]\n\ - ttcp -r [-options > out]\n\ -Common options:\n\ - -l ## length of bufs read from or written to network (default 8192)\n\ - -u use UDP instead of TCP\n\ - -U use UNIX domain sockets instead of Internet domain sockets\n\ - -p ## port number to send to or listen at (default 5001)\n\ - -s -t: source a pattern to network\n\ - -r: sink (discard) all data from network\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\ -Options specific to -t:\n\ - -n## number of source bufs written to network (default 2048)\n\ - -D don't buffer TCP writes (sets TCP_NODELAY socket option)\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\ -"; - -char stats[128]; -unsigned long nbytes; /* bytes on net */ -unsigned long numCalls = 0; /* # of I/O system calls */ -double cput, realt; /* user, real time (seconds) */ - -void err (char *s); -void mes (char *s); -void pattern (register char *cp, register int cnt); -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 (ACE_SOCK_Stream &s, void *buf, int count); -int Nwrite (ACE_SOCK_Stream &s, void *buf, int count); - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else -void -sigpipe () -#endif -{ -} - -char *title = 0; -int new_line = 0; - -int -main (int argc, char *argv[]) -{ - ACE_SOCK_Stream connection_stream; - unsigned long addr_tmp; - int c; - - if (argc < 2) - goto usage; - - while ((c = getopt (argc, argv, "drstU:uvBDTb:f:l:n:p:A:O:L:xh:")) != -1) - { - switch (c) - { - - case 'h': - host = optarg; - break; - case 'x': - new_line = 1; - break; - case 'L': - title = optarg; - break; - case 'B': - b_flag = 1; - break; - case 't': - trans = 1; - break; - case 'r': - trans = 0; - break; - case 'd': - options |= SO_DEBUG; - 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': - data_buf_len = atoi (optarg); - break; - case 's': - sinkmode = !sinkmode; - break; - case 'p': - port = atoi (optarg); - break; - case 'U': - domain = PF_UNIX; - domainname = optarg; - break; - case 'u': - udp = 1; - 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 'T': - touchdata = 1; - break; - - default: - goto usage; - } - } - - /* if transmitter, create remote address to transmit to. */ - - if (trans) - { - if (address.set (port, host) == -1) - perror ("address.set"), exit (1); - } - - /* else, receiver create address to listen on */ - else - { - address.set (port); - } - - total_msg_len = sizeof (long) + data_buf_len; - - // allocate the buffer - message_buf = (Data_Control_Message *) malloc (total_msg_len); - if (message_buf == 0) - err ("malloc"); - -// if (bufalign != 0) -// message_buf += (bufalign - ((int) message_buf % bufalign) + bufoffset) % bufalign; - - // let's go ahead and set the control message for every send right now - message_buf->size_ = data_buf_len; - - session_control_buf.nbuf_ = nbuf; - session_control_buf.size_ = data_buf_len; - - // - // print out option values for trans and receiver - // - - if (trans) - { - fprintf (stdout, - "ttcp-t: data_buf_len=%d, nbuf=%d, align=%d/%d, port=%d", - data_buf_len, nbuf, bufalign, bufoffset, port); - if (sockbufsize) - fprintf (stdout, ", sockbufsize=%d", sockbufsize); - fprintf (stdout, " %s -> %s\n", - domain == PF_INET ? (udp ? "udp" : "tcp") : "unix", - host == 0 ? domainname : host); - } - else // receiver - { - fprintf (stdout, - "ttcp-r: data_buf_len=%d, nbuf=%d, align=%d/%d, port=%d", - data_buf_len, nbuf, bufalign, bufoffset, port); - if (sockbufsize) - fprintf (stdout, ", sockbufsize=%d", sockbufsize); - fprintf (stdout, " %s\n", domain == PF_INET ? (udp ? "udp" : "tcp") : "unix"); - } - - mes ("socket"); - - // - // connect and accept - // - - if (!udp) - { - signal (SIGPIPE, (SIG_TYP) sigpipe); - - /* the transmitter will set options and connect to receiver */ - if (trans) - { - if (connector_factory.connect (connection_stream, address) == -1) - perror ("connection failed"), exit (1); - fprintf (stdout, - "ttcp-t: data_buf_len=%d, nbuf=%d, align=%d/%d, port=%d", - data_buf_len, nbuf, bufalign, bufoffset, port); - - // turn off weird ack things - if (nodelay) - { - struct protoent *p = getprotobyname ("tcp"); - - if (p && connection_stream.set_option (p->p_proto, - TCP_NODELAY, - (char *)& one, - sizeof (one))) - err ("setsockopt: nodelay"); - mes ("nodelay"); - } - if (sockbufsize) - { - if (connection_stream.set_option (SOL_SOCKET, - SO_SNDBUF, - (char *) &sockbufsize, - sizeof sockbufsize) == -1) - err ("acceptor_factory.set_option"); - mes ("sndbuf"); - } - } - - /* receiver will listen for connections from the transmitter */ - else - { - if (acceptor_factory.open (address, 1) == -1) - perror ("acceptor open"), exit (1); - - ACE_INET_Addr remote_address; - - if (acceptor_factory.accept (connection_stream, - (ACE_Addr *) &remote_address) == -1) - perror ("acceptor accept"), exit (1); - - // set the window size - if (sockbufsize) - { - if (connection_stream.set_option (SOL_SOCKET, - SO_RCVBUF, - (char *) &sockbufsize, - sizeof sockbufsize) == -1) - err ("acceptor_factory.set_option"); - mes ("rcvbuf"); - } - - fprintf (stderr, "ttcp-r: accept from %s\n", remote_address.get_host_name()); - } - } - - // - // start timer - // - - errno = 0; - - // used in send_n and recv_n - connection_descriptor = connection_stream.get_handle (); - - if (trans) - { - pattern (& (message_buf->data_), data_buf_len); - prep_timer (); - - ACE_DEBUG ((LM_DEBUG, "Sending session control message" - " nbuf %d, size %d\n", session_control_buf.nbuf_, - session_control_buf.size_)); - if (send_n ((char *) &session_control_buf, - sizeof (Session_Control_Message)) - != sizeof (Session_Control_Message)) - ACE_ERROR_RETURN ((LM_ERROR, "%p send session control failed\n", - "ttcp"), -1); - - long ack; - int send_result; - while (nbuf--) - { - send_result = send_n ((char *) message_buf, total_msg_len); - if (send_result != total_msg_len) - ACE_ERROR_RETURN ((LM_ERROR, "%p only sent %d of %d bytes on call %d\n", - "ttcp", send_result, total_msg_len, numCalls + 1), -1); - numCalls++; - nbytes += data_buf_len; - - if (recv_n ((char *) &ack, sizeof ack) != sizeof ack) - ACE_ERROR_RETURN ((LM_ERROR, "%p recv of ack failed\n", - "ttcp"), -1); - - if (ack != data_buf_len) - ACE_DEBUG ((LM_DEBUG, "%received ack for only %d bytes\n", ack)); - } - } - else - { - prep_timer (); - - if (recv_n ((char *) &session_control_buf, - sizeof (Session_Control_Message)) != sizeof (Session_Control_Message)) - ACE_ERROR_RETURN ((LM_ERROR, "%p recv session control failed\n", - "ttcp"), -1); - - ACE_DEBUG ((LM_DEBUG, "received session control message" - " nbuf %d, size %d\n", session_control_buf.nbuf_, - session_control_buf.size_)); - - nbuf = session_control_buf.nbuf_; - // ignore session_control_buf.size_ for now - - long cnt; - - while (nbuf--) - { - if (recv_n ((char *) message_buf, sizeof (long)) != sizeof (long)) - ACE_ERROR_RETURN ((LM_ERROR, "%p recv data control failed\n", - "ttcp"), -1); - - cnt = recv_n (& (message_buf->data_), message_buf->size_); - if (cnt != message_buf->size_) - ACE_ERROR_RETURN ((LM_ERROR, "recv data failed\n"), -1); - - numCalls++; - nbytes += cnt; - - if (send_n ((char *) &cnt, sizeof cnt) != sizeof cnt) - ACE_ERROR_RETURN ((LM_ERROR, "%p send ack failed\n", - "ttcp"), -1); - } - } - - if (errno) - err ("IO"); - - // - // stop the timer - // - - (void) read_timer (stats, sizeof (stats)); - if (udp && trans) - { - (void) Nwrite (connection_stream, message_buf, 4); /* rcvr end */ - (void) Nwrite (connection_stream, message_buf, 4); /* rcvr end */ - (void) Nwrite (connection_stream, message_buf, 4); /* rcvr end */ - (void) Nwrite (connection_stream, message_buf, 4); /* rcvr end */ - } - 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 *fd; - char filename[BUFSIZ]; - ACE_OS::sprintf (filename, "%s.results", title); - fd = fopen(filename,"a+"); - if (new_line) - fprintf(fd,"\n -l %ldk \t", data_buf_len/1024); - tmp = ((double) nbytes) / realt; - fprintf(fd,"%.2f ", tmp * 8.0 / 1024.0 / 1024.0); - fclose(fd); - } -#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 I/O 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", - message_buf); - } - exit (0); - -usage: - fprintf (stderr, Usage); - return 1; -} - -int -send_n (const void *buf, int len) -{ - size_t bytes_written; - int n; - - for (bytes_written = 0; bytes_written < len; bytes_written += n) - if ((n = write (connection_descriptor, (const char *) buf + bytes_written, - len - bytes_written)) == -1) - return -1; - - return bytes_written; -} - -int -recv_n (void *buf, int len) -{ - size_t bytes_read; - int n; - - for (bytes_read = 0; bytes_read < len; bytes_read += n) - if ((n = read (connection_descriptor, (char *) buf + bytes_read, - len - bytes_read)) == -1) - return -1; - else if (n == 0) - break; - - return bytes_read; -} - -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); -} - -void -pattern (register char *cp, register int cnt) -{ - register char c; - c = 0; - while (cnt-- > 0) - { - while (!isprint ((c & 0x7F))) - c++; - *cp++ = (c++ & 0x7F); - } -} - -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 (ACE_SOCK_Stream &s, void *buf, int count) -{ - numCalls++; - return (s.recv (buf, count)); -} - -/* - * N W R I T E - */ -int -Nwrite (ACE_SOCK_Stream &s, void *buf, int count) -{ - numCalls++; - return s.send (buf, count); -} - -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); -} diff --git a/performance-tests/TTCP/C/run_test b/performance-tests/TTCP/C/run_test deleted file mode 100644 index 9a4fa346ad3..00000000000 --- a/performance-tests/TTCP/C/run_test +++ /dev/null @@ -1,35 +0,0 @@ -# test_run 64 enatm0-kavita.cs.wustl.edu title 10002 -# repeat 100 new-ttcp -r -s -fm -p 10002 -b 65536 -#!/bin/csh -f -if ($#argv != 4) then - echo "Usage: sclt <Max msg size> <destination> <TitleOfThisTest> <port>" $4 - exit 1 -endif -# -@ msize=1024 -@ limit= ($argv[1] * 1024) -#echo $limit -#echo $msize -echo "Iteration#" 1 ": new-ttcp -fm -s -t -l" $msize "-h" $2 "-x -L" $3 "-p" $4 -new-ttcp -fm -s -t -l $msize -h $2 -x -L $3 -p $4 -sleep 1 -set flag=0 -while ($msize <= $limit) - if ($flag == 0) goto label - echo "Iteration#" 1 ": new-ttcp -fm -s -t -l" $msize "-h" $2 "-x -L" $3 "-p" $4 - new-ttcp -fm -s -t -l $msize -h $2 -x -L $3 -p $4 - sleep 1 - label: - set flag=1 - foreach i (2 3 4 5) - echo "Iteration#" $i ": new-ttcp -fm -s -t -l" $msize "-h" $2 "-L" $3 "-p" $4 - new-ttcp -fm -s -t -l $msize -h $2 -L $3 -p $4 - sleep 1 - end - echo "---------------------------" - @ msize = ($msize * 2) -end - -echo " " -echo "Done at:" -date diff --git a/performance-tests/TTCP/Makefile b/performance-tests/TTCP/Makefile deleted file mode 100644 index b45a1501758..00000000000 --- a/performance-tests/TTCP/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the Orbix applications -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -INFO = README - -DIRS = ACE-C++ \ - C \ - Orbix \ - ORBeline - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU - diff --git a/performance-tests/TTCP/NT/SLEEP.EXE b/performance-tests/TTCP/NT/SLEEP.EXE Binary files differdeleted file mode 100755 index 197e65dbbb5..00000000000 --- a/performance-tests/TTCP/NT/SLEEP.EXE +++ /dev/null diff --git a/performance-tests/TTCP/NT/TTCP.EXE b/performance-tests/TTCP/NT/TTCP.EXE Binary files differdeleted file mode 100755 index 51acec39307..00000000000 --- a/performance-tests/TTCP/NT/TTCP.EXE +++ /dev/null diff --git a/performance-tests/TTCP/NT/TTCPR.BAT b/performance-tests/TTCP/NT/TTCPR.BAT deleted file mode 100755 index a21594b04d4..00000000000 --- a/performance-tests/TTCP/NT/TTCPR.BAT +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -:start -ttcp -s -r -v -p5006 -b8192 -goto start - diff --git a/performance-tests/TTCP/NT/TTCPX.BAT b/performance-tests/TTCP/NT/TTCPX.BAT deleted file mode 100755 index 71f611a1b4f..00000000000 --- a/performance-tests/TTCP/NT/TTCPX.BAT +++ /dev/null @@ -1,17 +0,0 @@ -@echo off -:start -ttcp -s -t -v -D -p5006 -b8192 -l1024 -n2000 %1 -sleep 5 -ttcp -s -t -v -D -p5006 -b8192 -l2048 -n2000 %1 -sleep 5 -ttcp -s -t -v -D -p5006 -b8192 -l4096 -n2000 %1 -sleep 5 -ttcp -s -t -v -D -p5006 -b8192 -l8192 -n2000 %1 -sleep 5 -ttcp -s -t -v -D -p5006 -b8192 -l16384 -n2000 %1 -sleep 5 -ttcp -s -t -v -D -p5006 -b8192 -l32768 -n2000 %1 -sleep 5 -ttcp -s -t -v -D -p5006 -b8192 -l65536 -n2000 %1 -sleep 5 -ttcp -s -t -v -D -p5006 -b8192 -l131072 -n2000 %1 diff --git a/performance-tests/TTCP/NT/how-to-use.txt b/performance-tests/TTCP/NT/how-to-use.txt deleted file mode 100644 index 77aa1082ba9..00000000000 --- a/performance-tests/TTCP/NT/how-to-use.txt +++ /dev/null @@ -1 +0,0 @@ -To use run TTCPR.BAT for the receiver and "TTCPX.BAT hostname" for the sender diff --git a/performance-tests/TTCP/ORBeline/How_to_run_tests b/performance-tests/TTCP/ORBeline/How_to_run_tests deleted file mode 100644 index 75d5500fb20..00000000000 --- a/performance-tests/TTCP/ORBeline/How_to_run_tests +++ /dev/null @@ -1,57 +0,0 @@ -// ORBeline -// -// sequence AND string - -// HOSTNAMES: -// For our tests, tango.cs.wustl.edu was the receiver hostname. For atm transfers, you -// should setup the environment variable ORBELINE_IPADDR=ATM-IP-ADDR. Otherwise, -// the ethernet IP address of tango.cs.wustl.edu wis used. -// For your case, substitute the proper receiver hostname for your system. - -// ORBeline DAEMONS: -// there must be an ORBeline daemon running on the receiver host in your system. -// in our case, we had an ORBeline daemon running on tango.cs.wustl.edu - -// ACE_ROOT: -// ACE_ROOT can be set to the root directory of ACE so that these lines -// can be cut and pasted to run tests. - -// Results: -// These examples show the result files being stored in a /results directory off -// the current path. This can be set to whatever you like. - -// ****** sequence ****** (-q option flag) - -// ATM with 64k receiver buffers (setenv ORBELINE_IPADDR=128.252.114.18) -Receiver_Host: server "$ACE_ROOT/apps/ttcp/orbeline/server -s -r -fm -b 65536 -q" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/sequence.atm.64 -q - -// ATM with 8k reciever buffers (setenv ORBELINE_IPADDR=128.252.114.18) -Receiver_Host: server "$ACE_ROOT/apps/ttcp/orbeline/server -s -r -fm -q" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/sequence.atm.8 -q - -// ETHERNET with 64k receiver buffers -Receiver_Host: server "$ACE_ROOT/apps/ttcp/orbeline/server -s -r -fm -b 65536 -q" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/sequence.atm.64 -q - -// ETHERNET with 8k reciever buffers -Receiver_Host: server "$ACE_ROOT/apps/ttcp/orbeline/server -s -r -fm -q" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/sequence.atm.8 -q - -// ****** string ****** (-q is omitted) - -// ATM with 64k receiver buffers (setenv ORBELINE_IPADDR=128.252.114.18) -Receiver_Host: server "$ACE_ROOT/apps/ttcp/orbeline/server -s -r -fm -b 65536" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/sequence.atm.64 - -// ATM with 8k reciever buffers (setenv ORBELINE_IPADDR=128.252.114.18) -Receiver_Host: server "$ACE_ROOT/apps/ttcp/orbeline/server -s -r -fm" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/sequence.atm.64 - -// ETHERNET with 64k receiver buffers -Receiver_Host: server "$ACE_ROOT/apps/ttcp/orbeline/server -s -r -fm" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/sequence.atm.8 - -// ETHERNET with 8k reciever buffers -Receiver_Host: server "$ACE_ROOT/apps/ttcp/orbeline/server -s -r -fm" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/sequence.atm.8 diff --git a/performance-tests/TTCP/ORBeline/Makefile b/performance-tests/TTCP/ORBeline/Makefile deleted file mode 100644 index b5e39348090..00000000000 --- a/performance-tests/TTCP/ORBeline/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -include ./stdmk -EXE = server client - -all: $(EXE) - -# Remeber -p for generating mon.out for profiler -#C++FLAGS = -O4 -p -DTEST_SEQUENCE -#C++FLAGS = -O4 -DTEST_SEQUENCE -#C++FLAGS = -O4 -p -#C++FLAGS = -g -C++FLAGS = -O4 $(CCFLAGS) - -realclean: - -rm -f core *.o client server $(EXE) *~ - -clean: - -rm -f core *.o client server $(EXE) *~ - -ttcp_c.cc: ttcp.idl - $(ORBCC) ttcp.idl - -ttcp_s.cc: ttcp.idl - $(ORBCC) ttcp.idl - -ttcp_i.o: ttcp_i.cpp - $(CC) $(C++FLAGS) -I./ -I../../include -c ttcp_i.cpp - -client : ttcp_s.o ttcp_c.o ttcp_i.o - $(CC) $(C++FLAGS) -o client ttcp_i.o ttcp_s.o ttcp_c.o $(LIBPATH) $(LIBORB) $(STDCC_LIBS) - -server : ttcp_s.o ttcp_c.o ttcp_i.o - $(CC) $(C++FLAGS) -o server ttcp_i.o ttcp_s.o ttcp_c.o $(LIBPATH) $(LIBORB) $(STDCC_LIBS) - diff --git a/performance-tests/TTCP/ORBeline/run_test b/performance-tests/TTCP/ORBeline/run_test deleted file mode 100644 index 842be36c4ac..00000000000 --- a/performance-tests/TTCP/ORBeline/run_test +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/csh -f -if ($#argv < 3) then - echo "Usage: sclt <Max msg size> <destination> <TitleOfThisTest> -q" - exit 1 -endif -# -@ msize=1024 -@ limit= ($argv[1] * 1024) -#echo $limit -#echo $msize -echo "Iteration#" 1 ": client -D -fm -s -t -l" $msize "-h" $2 "-L" $3 $4 -client -D -fm -s -t -l $msize -h $2 -x -L $3 $4 -set flag=0 -while ($msize <= $limit) - if ($flag == 0) goto label - echo "Iteration#" 1 ": client -D -fm -s -t -l" $msize "-h" $2 "-x -L" $3 $4 - client -D -fm -s -t -l $msize -h $2 -x -L $3 $4 - label: - set flag=1 - foreach i (2 3 4 5) - echo "Iteration#" $i ": client -D -fm -s -t -l" $msize "-h" $2 "-x -L " $3 $4 - client -D -fm -s -t -l $msize -h $2 -L $3 $4 - end - echo "---------------------------" - @ msize = ($msize * 2) -end - -echo " " -echo "Done at:" -date diff --git a/performance-tests/TTCP/ORBeline/ser b/performance-tests/TTCP/ORBeline/ser deleted file mode 100644 index da25e305013..00000000000 --- a/performance-tests/TTCP/ORBeline/ser +++ /dev/null @@ -1,4 +0,0 @@ -server -s -r -fm -b 65536 $1 -#8192 -#16384 -#32768 diff --git a/performance-tests/TTCP/ORBeline/stdmk b/performance-tests/TTCP/ORBeline/stdmk deleted file mode 100644 index 0acbf5c922c..00000000000 --- a/performance-tests/TTCP/ORBeline/stdmk +++ /dev/null @@ -1,34 +0,0 @@ -CC = CC -DEBUG = - -ORBELINEDIR = $(ORBELINE_ROOT) - -ORBCC = $(ORBELINEDIR)/bin/orbeline -v _c -m _s - -CCINCLUDES = -I. -I$(ORBELINEDIR)/include - -CCFLAGS = $(CCINCLUDES) $(DEBUG) - -LIBPATH = -L$(ORBELINEDIR)/lib - -STDCC_LIBS = -lsocket -lnsl -ldl - -LIBIR = -lir -LIBORB = -lorb -lorbinit -LIBDII = -ldii -lir - -.SUFFIXES: .C .o .h .hh .cc - -.C.o: - $(CC) $(CCFLAGS) -c -o $@ $< - -.cc.o: - $(CC) $(CCFLAGS) -c -o $@ $< - -.C.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - -.cc.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - - diff --git a/performance-tests/TTCP/ORBeline/tango_clt b/performance-tests/TTCP/ORBeline/tango_clt deleted file mode 100644 index fb5ec083ec1..00000000000 --- a/performance-tests/TTCP/ORBeline/tango_clt +++ /dev/null @@ -1,6 +0,0 @@ -client -fm -s -t -D -l 1024 -h tango.cs.wustl.edu $1 -#4096 -#32768 -#16384 -#131072 -#262144 diff --git a/performance-tests/TTCP/ORBeline/ttcp.idl b/performance-tests/TTCP/ORBeline/ttcp.idl deleted file mode 100644 index cf83cc83a20..00000000000 --- a/performance-tests/TTCP/ORBeline/ttcp.idl +++ /dev/null @@ -1,23 +0,0 @@ -/* -*- C++ -*- */ -// @(#)ttcp.idl 1.1 10/18/96 - - -interface ttcp_sequence { - -typedef sequence<char> my_sequence; - - oneway void send (in my_sequence ttcp_rec); - oneway void send_hack (in string ttcp_string); - oneway void start_timer (); - oneway void stop_timer (); -}; - -interface ttcp_string { - - oneway void send (in string ttcp_string); - oneway void send_hack (in string ttcp_string); - oneway void start_timer (); - oneway void stop_timer (); -}; - - diff --git a/performance-tests/TTCP/ORBeline/ttcp_c.cc b/performance-tests/TTCP/ORBeline/ttcp_c.cc deleted file mode 100644 index da268e96821..00000000000 --- a/performance-tests/TTCP/ORBeline/ttcp_c.cc +++ /dev/null @@ -1,302 +0,0 @@ -/* This file is automatically generated by Orbeline. */ -/* Do not modify this file. */ -/* Orbeline (c) is copyrighted by PostModern Computing, Inc. */ - -#include <ttcp_c.hh> - -const CORBA::TypeInfo ttcp_sequence::_class_info("ttcp_sequence", - &ttcp_sequence::_reader, - CORBA::Object::_desc(), - 0); -const CORBA::TypeInfo *ttcp_sequence::_desc() -{ - return &_class_info; -} -const CORBA::TypeInfo *ttcp_sequence::_type_info() const -{ - return &_class_info; -} -void *ttcp_sequence::_safe_narrow(const CORBA::TypeInfo *info) const -{ - if (&_class_info == info) - return (void *) this; - void *ret = NULL; - return ret; -} -ttcp_sequence *ttcp_sequence::_narrow(const CORBA::Object *obj) -{ - void *ptr = obj->_safe_narrow(&_class_info); - return (ttcp_sequence *) ptr; -} -ttcp_sequence *ttcp_sequence::_bind(CORBA::Environment &_env, const char *_object_name, - const char *_host_name, const CORBA::BindOptions *opt) -{ - _env.clear_exception(); - ttcp_sequence *_impl; - CORBA::Object *_obj = _implementation("ttcp_sequence", _object_name); - if (!_obj) { - _impl = new ttcp_sequence(_object_name); -#if defined(_MSC_BUG) - _impl->Object::_bind("ttcp_sequence", _env, _object_name, _host_name, opt); -#else - _impl->CORBA::Object::_bind("ttcp_sequence", _env, _object_name, _host_name, opt); -#endif - if (_env.check_exception()) { - delete _impl; - return NULL; - } - } - else - _impl = ttcp_sequence::_narrow(_obj); - return _impl; -} - -#if !defined(_IMPLEMENT_SEQUENCE_CORBA__Char_ttcp_sequence__) && defined(_DECLARE_SEQUENCE_CORBA__Char_ttcp_sequence___ttcp_idl) -#define _IMPLEMENT_SEQUENCE_CORBA__Char_ttcp_sequence__ -IMPLEMENT_PRIMITIVE_SEQUENCE(CORBA__Char,CORBA::Char,ttcp_sequence::) -#endif - - - - - -void ttcp_sequence::send(const ttcp_sequence::my_sequence& ttcp_rec, CORBA::Environment& _env) -{ - _env.clear_exception(); - if (_is_local()) { - send(ttcp_rec); - return; - } - CORBA::MarshalStream *_strm = _create_oneway_request( - "ttcp_sequence", _ttcp_sequence_M_send,_env); - if (_env.check_exception()) - return; - _strm->putSequence(ttcp_rec, CORBA::MarshalStream::ARG_IN); - _send_oneway(_env); - if (_env.check_exception()) { - if (CORBA::StExcep::TRANSIENT::_cast(_env.exception_value()) != NULL) - send(ttcp_rec, _env); - return; - } - _strm->flush(_env); - return; -} - - - - -void ttcp_sequence::send_hack(const CORBA::String& ttcp_string, CORBA::Environment& _env) -{ - _env.clear_exception(); - if (_is_local()) { - send_hack(ttcp_string); - return; - } - CORBA::MarshalStream *_strm = _create_oneway_request( - "ttcp_sequence", _ttcp_sequence_M_send_hack,_env); - if (_env.check_exception()) - return; - _strm->putString(ttcp_string, CORBA::MarshalStream::ARG_IN); - _send_oneway(_env); - if (_env.check_exception()) { - if (CORBA::StExcep::TRANSIENT::_cast(_env.exception_value()) != NULL) - send_hack(ttcp_string, _env); - return; - } - _strm->flush(_env); - return; -} - - - - -void ttcp_sequence::start_timer(CORBA::Environment& _env) -{ - _env.clear_exception(); - if (_is_local()) { - start_timer(); - return; - } - CORBA::MarshalStream *_strm = _create_oneway_request( - "ttcp_sequence", _ttcp_sequence_M_start_timer,_env); - if (_env.check_exception()) - return; - _send_oneway(_env); - if (_env.check_exception()) { - if (CORBA::StExcep::TRANSIENT::_cast(_env.exception_value()) != NULL) - start_timer(_env); - return; - } - _strm->flush(_env); - return; -} - - - - -void ttcp_sequence::stop_timer(CORBA::Environment& _env) -{ - _env.clear_exception(); - if (_is_local()) { - stop_timer(); - return; - } - CORBA::MarshalStream *_strm = _create_oneway_request( - "ttcp_sequence", _ttcp_sequence_M_stop_timer,_env); - if (_env.check_exception()) - return; - _send_oneway(_env); - if (_env.check_exception()) { - if (CORBA::StExcep::TRANSIENT::_cast(_env.exception_value()) != NULL) - stop_timer(_env); - return; - } - _strm->flush(_env); - return; -} - -const CORBA::TypeInfo ttcp_string::_class_info("ttcp_string", - &ttcp_string::_reader, - CORBA::Object::_desc(), - 0); -const CORBA::TypeInfo *ttcp_string::_desc() -{ - return &_class_info; -} -const CORBA::TypeInfo *ttcp_string::_type_info() const -{ - return &_class_info; -} -void *ttcp_string::_safe_narrow(const CORBA::TypeInfo *info) const -{ - if (&_class_info == info) - return (void *) this; - void *ret = NULL; - return ret; -} -ttcp_string *ttcp_string::_narrow(const CORBA::Object *obj) -{ - void *ptr = obj->_safe_narrow(&_class_info); - return (ttcp_string *) ptr; -} -ttcp_string *ttcp_string::_bind(CORBA::Environment &_env, const char *_object_name, - const char *_host_name, const CORBA::BindOptions *opt) -{ - _env.clear_exception(); - ttcp_string *_impl; - CORBA::Object *_obj = _implementation("ttcp_string", _object_name); - if (!_obj) { - _impl = new ttcp_string(_object_name); -#if defined(_MSC_BUG) - _impl->Object::_bind("ttcp_string", _env, _object_name, _host_name, opt); -#else - _impl->CORBA::Object::_bind("ttcp_string", _env, _object_name, _host_name, opt); -#endif - if (_env.check_exception()) { - delete _impl; - return NULL; - } - } - else - _impl = ttcp_string::_narrow(_obj); - return _impl; -} - - - -void ttcp_string::send(const CORBA::String& ttcp_string, CORBA::Environment& _env) -{ - _env.clear_exception(); - if (_is_local()) { - send(ttcp_string); - return; - } - CORBA::MarshalStream *_strm = _create_oneway_request( - "ttcp_string", _ttcp_string_M_send,_env); - if (_env.check_exception()) - return; - _strm->putString(ttcp_string, CORBA::MarshalStream::ARG_IN); - _send_oneway(_env); - if (_env.check_exception()) { - if (CORBA::StExcep::TRANSIENT::_cast(_env.exception_value()) != NULL) - send(ttcp_string, _env); - return; - } - _strm->flush(_env); - return; -} - - - - -void ttcp_string::send_hack(const CORBA::String& ttcp_string, CORBA::Environment& _env) -{ - _env.clear_exception(); - if (_is_local()) { - send_hack(ttcp_string); - return; - } - CORBA::MarshalStream *_strm = _create_oneway_request( - "ttcp_string", _ttcp_string_M_send_hack,_env); - if (_env.check_exception()) - return; - _strm->putString(ttcp_string, CORBA::MarshalStream::ARG_IN); - _send_oneway(_env); - if (_env.check_exception()) { - if (CORBA::StExcep::TRANSIENT::_cast(_env.exception_value()) != NULL) - send_hack(ttcp_string, _env); - return; - } - _strm->flush(_env); - return; -} - - - - -void ttcp_string::start_timer(CORBA::Environment& _env) -{ - _env.clear_exception(); - if (_is_local()) { - start_timer(); - return; - } - CORBA::MarshalStream *_strm = _create_oneway_request( - "ttcp_string", _ttcp_string_M_start_timer,_env); - if (_env.check_exception()) - return; - _send_oneway(_env); - if (_env.check_exception()) { - if (CORBA::StExcep::TRANSIENT::_cast(_env.exception_value()) != NULL) - start_timer(_env); - return; - } - _strm->flush(_env); - return; -} - - - - -void ttcp_string::stop_timer(CORBA::Environment& _env) -{ - _env.clear_exception(); - if (_is_local()) { - stop_timer(); - return; - } - CORBA::MarshalStream *_strm = _create_oneway_request( - "ttcp_string", _ttcp_string_M_stop_timer,_env); - if (_env.check_exception()) - return; - _send_oneway(_env); - if (_env.check_exception()) { - if (CORBA::StExcep::TRANSIENT::_cast(_env.exception_value()) != NULL) - stop_timer(_env); - return; - } - _strm->flush(_env); - return; -} - - diff --git a/performance-tests/TTCP/ORBeline/ttcp_c.hh b/performance-tests/TTCP/ORBeline/ttcp_c.hh deleted file mode 100644 index b8eaca3f9a8..00000000000 --- a/performance-tests/TTCP/ORBeline/ttcp_c.hh +++ /dev/null @@ -1,181 +0,0 @@ -#ifndef _ttcp_c_hh -#define _ttcp_c_hh - -/* This file is automatically generated by Orbeline. */ -/* Do not modify this file. */ -/* Orbeline (c) is copyrighted by PostModern Computing, Inc. */ - -#include <corba.h> -#include <arrmac.h> -#include <seqmac.h> - - - -class ttcp_sequence: public virtual CORBA::Object -{ - private: - static const CORBA::TypeInfo _class_info; - public: - static const CORBA::TypeInfo *_desc(); - virtual const CORBA::TypeInfo *_type_info() const; - virtual void *_safe_narrow(const CORBA::TypeInfo *) const; - static CORBA::Object *_reader(NCistream& strm) { - return new ttcp_sequence(strm); - } - protected: -#if defined(_MSC_BUG) - ttcp_sequence(const char *obj_name = NULL) :Object(obj_name) {} - ttcp_sequence(NCistream& strm) :Object(strm) {} -#else - ttcp_sequence(const char *obj_name = NULL) :CORBA::Object(obj_name) {} - ttcp_sequence(NCistream& strm) :CORBA::Object(strm) {} -#endif - virtual ~ttcp_sequence() {} - public: - enum _ttcp_sequence_Methods { - _ttcp_sequence_M_send = 0, - _ttcp_sequence_M_send_hack, - _ttcp_sequence_M_start_timer, - _ttcp_sequence_M_stop_timer - }; - static ttcp_sequence *_narrow(const CORBA::Object *obj); - static ttcp_sequence *_bind(CORBA::Environment &_env, const char *object_name = NULL, - const char *host_name = NULL, const CORBA::BindOptions* opt = NULL); - static ttcp_sequence *_bind(const char *object_name = NULL, - const char *host_name = NULL, const CORBA::BindOptions* opt = NULL) { - CORBA::Environment env; - return _bind(env, object_name, host_name, opt); - } - virtual const char *_interface_name() const { return "ttcp_sequence"; } - -#ifndef _DECLARE_SEQUENCE_CORBA__Char_ttcp_sequence__ -#define _DECLARE_SEQUENCE_CORBA__Char_ttcp_sequence__ -#define _DECLARE_SEQUENCE_CORBA__Char_ttcp_sequence___ttcp_idl -DECLARE_PRIMITIVE_SEQUENCE(CORBA__Char,CORBA::Char); -#endif - - typedef ttcp_sequence::IDLSequence(CORBA__Char) my_sequence; - - - - - void send(const ttcp_sequence::my_sequence& ttcp_rec, CORBA::Environment& _env); - - virtual void send(const ttcp_sequence::my_sequence& ttcp_rec) { - send(ttcp_rec, _environment()); - } - - - - - void send_hack(const CORBA::String& ttcp_string, CORBA::Environment& _env); - - virtual void send_hack(const CORBA::String& ttcp_string) { - send_hack(ttcp_string, _environment()); - } - - - - - void start_timer(CORBA::Environment& _env); - - virtual void start_timer() { - start_timer(_environment()); - } - - - - - void stop_timer(CORBA::Environment& _env); - - virtual void stop_timer() { - stop_timer(_environment()); - } - - -}; -typedef ttcp_sequence* ttcp_sequenceRef; - - - - -class ttcp_string: public virtual CORBA::Object -{ - private: - static const CORBA::TypeInfo _class_info; - public: - static const CORBA::TypeInfo *_desc(); - virtual const CORBA::TypeInfo *_type_info() const; - virtual void *_safe_narrow(const CORBA::TypeInfo *) const; - static CORBA::Object *_reader(NCistream& strm) { - return new ttcp_string(strm); - } - protected: -#if defined(_MSC_BUG) - ttcp_string(const char *obj_name = NULL) :Object(obj_name) {} - ttcp_string(NCistream& strm) :Object(strm) {} -#else - ttcp_string(const char *obj_name = NULL) :CORBA::Object(obj_name) {} - ttcp_string(NCistream& strm) :CORBA::Object(strm) {} -#endif - virtual ~ttcp_string() {} - public: - enum _ttcp_string_Methods { - _ttcp_string_M_send = 0, - _ttcp_string_M_send_hack, - _ttcp_string_M_start_timer, - _ttcp_string_M_stop_timer - }; - static ttcp_string *_narrow(const CORBA::Object *obj); - static ttcp_string *_bind(CORBA::Environment &_env, const char *object_name = NULL, - const char *host_name = NULL, const CORBA::BindOptions* opt = NULL); - static ttcp_string *_bind(const char *object_name = NULL, - const char *host_name = NULL, const CORBA::BindOptions* opt = NULL) { - CORBA::Environment env; - return _bind(env, object_name, host_name, opt); - } - virtual const char *_interface_name() const { return "ttcp_string"; } - - - - void send(const CORBA::String& ttcp_string, CORBA::Environment& _env); - - virtual void send(const CORBA::String& ttcp_string) { - send(ttcp_string, _environment()); - } - - - - - void send_hack(const CORBA::String& ttcp_string, CORBA::Environment& _env); - - virtual void send_hack(const CORBA::String& ttcp_string) { - send_hack(ttcp_string, _environment()); - } - - - - - void start_timer(CORBA::Environment& _env); - - virtual void start_timer() { - start_timer(_environment()); - } - - - - - void stop_timer(CORBA::Environment& _env); - - virtual void stop_timer() { - stop_timer(_environment()); - } - - -}; -typedef ttcp_string* ttcp_stringRef; - - - -#endif - diff --git a/performance-tests/TTCP/ORBeline/ttcp_i.cpp b/performance-tests/TTCP/ORBeline/ttcp_i.cpp deleted file mode 100644 index 9f86f1b0eea..00000000000 --- a/performance-tests/TTCP/ORBeline/ttcp_i.cpp +++ /dev/null @@ -1,1028 +0,0 @@ -/* -// $Id$ - - * T T C P . C - * - */ -#ifndef lint -static char RCSid[] = "ttcp.c $Revision$"; -#endif - -/* #define BSD43 */ -/* #define BSD42 */ -/* #define BSD41a */ -#define SYSV /* required on SGI IRIX releases before 3.3 */ - -#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> - -#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> -struct rusage - { - struct timeval ru_utime, ru_stime; - }; -#define RUSAGE_SELF 0 - -#else -#include <sys/resource.h> -#endif - -void err (char *s); -void mes (char *s); -void pattern (register char *cp, register int cnt); -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); -static void SD_Ready (int io_descriptor); -void set_sock_desc(int starter); -void stop_timer (unsigned long numbytes); - -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)*/ -int SEQUENCE=0; /* String parameter is the 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; -extern int errno; -extern int optind; -extern char *optarg; -char *title = 0; - -char stats[128]; -unsigned long nbytes; /* bytes on net */ -unsigned long numCalls; /* # of I/O system calls */ -double cput, realt; /* user, real time (seconds) */ - -// AAAAHHHHHHH what's this!!! C++ in the middle of C code???????!!!!!! - - -#include <iostream.h> -#include "ttcp_i.h" - -char *orb_host; - -// ttcp_i is the server side - - -// ----------------------------------------- start hack -// hack to get the sock desc ehab - -void -set_sock_desc(int starter) -{ - // 14 is just a guess... - for (int i = starter; i < 14; i++) - { - sockaddr_in addr; - int addrlen = sizeof addr; - if (getpeername (i, (sockaddr *) &addr, &addrlen) < 0) - continue; - - printf ("socket descriptor %d connected to %s on port %d\n", - i, inet_ntoa (addr.sin_addr), ntohs (addr.sin_port)); - SD_Ready (i); - } -} - -// hack to get the socket descriptor in the server side - -// I dublicated the functions. However, the ideal way is to creat a base -// class that will be inhereted from both ttcp_sequence and ttcp_string. -// BTW, I could not get '#ifdef' to work over here ! -void -ttcp_sequence_i::send_hack (const CORBA::String& ttcp_string) -{ - set_sock_desc(1); -} - -void -ttcp_string_i::send_hack (const CORBA::String& ttcp_string) -{ - set_sock_desc(1); -} - -static void -SD_Ready (int io_descriptor) -{ - if (sockbufsize) - { - if (setsockopt (io_descriptor, SOL_SOCKET, SO_RCVBUF, (char *) &sockbufsize, - sizeof sockbufsize) < 0) - perror ("setsockopt: rcvbuf"), exit (1); - - if (setsockopt (io_descriptor, SOL_SOCKET, SO_SNDBUF, (char *) &sockbufsize, - sizeof sockbufsize) < 0) - perror ("setsockopt: sndbuf"), exit (1); - } - - int sndbufsize = 0, rcvbufsize = 0; - int buflen = sizeof (int); - if (getsockopt (io_descriptor, SOL_SOCKET, SO_SNDBUF, (char *) &sndbufsize, &buflen) < 0) - err ("getsockopt: sndbuf"); - if (getsockopt (io_descriptor, SOL_SOCKET, SO_RCVBUF, (char *) &rcvbufsize, &buflen) < 0) - err ("getsockopt: rcvbuf"); - char buf[BUFSIZ]; - sprintf (buf, "descriptor %d, sndbuf = %d, rcvbuf = %d\n", - io_descriptor, sndbufsize, rcvbufsize); - mes (buf); - - if (nodelay) - { - struct protoent *p; - p = getprotobyname ("tcp"); - if (setsockopt (io_descriptor, - p->p_proto, - TCP_NODELAY, - (char *)& one, - sizeof (one))) - mes ("setsockopt: nodelay"); - mes ("nodelay"); - } -} - -// ----------------------------------------- end hack - - -// ttcp_i is the server side - -ttcp_sequence_i::ttcp_sequence_i() -{ - this->nbytes_ = 0; - // register a callback so we can futs with the descriptor - // being used by orbix. -} - -void -ttcp_sequence_i::start_timer () -{ - this->nbytes_ = 0; - prep_timer (); -} - -void -ttcp_sequence_i::stop_timer () -{ - stop_timer (this->nbytes_); -} - -void -ttcp_sequence_i::send(const ttcp_sequence::my_sequence& ttcp_seq) -{ - this->nbytes_ += ttcp_seq.length(); -} - -ttcp_string_i::ttcp_string_i() -{ - this->nbytes_ = 0; - // register a callback so we can futs with the descriptor - // being used by orbix. -} - -void -ttcp_string_i::start_timer () -{ - prep_timer (); -} - - -void -ttcp_string_i::stop_timer () -{ - stop_timer (this->nbytes_); -} - -void -ttcp_string_i::send(const CORBA::String& ttcp_string) -{ - this->nbytes_ += strlen (ttcp_string); -} - -// common to sequence and string -void -stop_timer (unsigned long numbytes) -{ - (void) read_timer (stats, sizeof (stats)); - - if (cput <= 0.0) - cput = 0.001; - if (realt <= 0.0) - realt = 0.001; - fprintf (stdout, - "ttcp%s%s: %ld bytes in %.2f real seconds = %s/sec +++\n", - trans ? "-t" : "-r", SEQUENCE ? "(Seq)" : "(Str)", - numbytes, realt, outfmt (((double) numbytes) / realt)); - - - if (verbose) - { - fprintf (stdout, - "ttcp%s%s: %ld bytes in %.2f CPU seconds = %s/cpu sec\n", - trans ? "-t" : "-r",SEQUENCE ? "(Seq)" : "(Str)", - numbytes, cput, outfmt (((double) numbytes) / cput)); - } - fprintf (stdout, - "ttcp%s%s: %d I/O calls, msec/call = %.2f, calls/sec = %.2f\n", - trans ? "-t" : "-r",SEQUENCE ? "(Seq)" : "(Str)", - numCalls, - 1024.0 * realt / ((double) numCalls), - ((double) numCalls) / realt); - fprintf (stdout, "ttcp%s%s: %s\n", trans ? "-t" : "-r",SEQUENCE ? "(Seq)" : "(Str)", stats); - if (verbose) - { - fprintf (stdout, - "ttcp%s: buffer address %#x\n", - trans ? "-t" : "-r", - buf); - } -numbytes = 0; - - // you shoudl exit here when you use -p (profiler) so the server will - // produce mon.out -#ifdef PROFILE - exit(1); -#endif -} // end of stop_timer - - -char Usage[] = "\ -Usage: ttcp -t [-options] host [ < in ]\n\ - ttcp -r [-options > out]\n\ -Common options:\n\ - -l ## length of bufs read from or written to network (default 8192)\n\ - -u use UDP instead of TCP\n\ - -U use UNIX domain sockets instead of Internet domain sockets\n\ - -p ## port number to send to or listen at (default 5001)\n\ - -s -t: source a pattern to network\n\ - -r: sink (discard) all data from network\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\ -Options specific to -t:\n\ - -n## number of source bufs written to network (default 2048)\n\ - -D don't buffer TCP writes (sets TCP_NODELAY socket option)\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\ - -L<test_title> the title of the current test\n\ - -F don't write to a file (writting in a file dat.out is default)\n\ - -q run the test using sequence parameter (string is defualt) \n\ -"; - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else -void -sigpipe () -#endif -{ -} - -int -main (int argc, char *argv[]) -{ - - unsigned long addr_tmp; - int c; - - if (argc < 2) - goto usage; - - while ((c = ACE_OS::getopt (argc, argv, "qFdrstU:uvBDTb:L:f:l:n:p:A:O:h:x")) != -1) - { - switch (c) - { - case 'L': - title = optarg; - fprintf(stdout,"---->title=%s\n",title); - break; - case 'x': - new_line = 1; - break; - case 'q': - SEQUENCE = 1; - break; - case 'F': - write_to_file = 0; - break; - case 'h': - orb_host = optarg; - break; - case 'B': - b_flag = 1; - break; - case 't': - trans = 1; - break; - case 'r': - trans = 0; - break; - case 'd': - options |= SO_DEBUG; - 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 's': - sinkmode = !sinkmode; - break; - case 'p': - port = atoi (optarg); - break; - case 'U': - domain = PF_UNIX; - domainname = optarg; - break; - case 'u': - udp = 1; - 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 'T': - touchdata = 1; - break; - - default: - goto usage; - } - } - - // - // Receiver - // - - if (!trans) - { - - // Sequence and String Interfaces - // instantiate ONLY one object at a time, so no dispatching overhead is counted - char *interface_name = new char[15]; - if (SEQUENCE) - { - printf("I am here\n"); - ttcp_sequence *my_ttcp = new ttcp_sequence_i; - strcpy(interface_name,"ttcp_sequence"); - } - else - { - ttcp_string *my_ttcp_s = new ttcp_string_i; - strcpy(interface_name,"ttcp_string"); - } - - // tell ORBeline that we have completed the server's initialization: - CORBA::BOA::impl_is_ready(); - - cout << "server exiting" << endl; - return 0; - } - - // - // Transmitter - // - - CORBA::Environment env; - ttcp_sequence *ttcp_seq; - ttcp_string *ttcp_str; - - if (SEQUENCE) - { - if ( (ttcp_seq = ttcp_sequence::_bind(0,::orb_host,0)) == 0) - { - cerr << "\n ttcp_i: Failed to _bind to " << orb_host << endl; - exit(-1); - } - } - else // string parameter used - if ( (ttcp_str = ttcp_string::_bind (0,::orb_host,0))== 0) - { - cerr << "\n ttcp_i: Failed to _bind to " << orb_host << endl; - exit(-1); - } - - // hack to get the socket descriptor in the server side after sending this msg - if (SEQUENCE) - ttcp_seq->send_hack("hack"); - else - ttcp_str->send_hack("hack"); - - // hack to get the socket descriptor in the client side: - - set_sock_desc(1); // replace "ttcp_->_fd" in the following with sockdesc - - // - // Prepare the Message to be sent - // - - errno = 0; - if (sinkmode) - { - if ((buf = (char *) malloc (buflen + bufalign)) == (char *) NULL) - err ("malloc"); - if (bufalign != 0) - buf += (bufalign - ((int) buf % bufalign) + bufoffset) % bufalign; - - // ttcp_sequence::my_sequence sequence_message; ORBIX - ttcp_sequence::my_sequence message (buflen + 1); - ::buf[::buflen-1] = '\0'; - if (SEQUENCE) - { - message._num_allocated = buflen; - message._count = buflen; - message._contents = buf; - } - - - pattern (buf, buflen); - // - // Start the timers on the client and server sides - // - - prep_timer (); - - if (SEQUENCE) - ttcp_seq->start_timer (); - else - ttcp_str->start_timer (); - while (nbuf--) - { - if (SEQUENCE) - ttcp_seq->send (message); - else - ttcp_str->send (buf); - - numCalls++; - nbytes += buflen; - } - - } - else - { - register int cnt; - while ((cnt = read (0, buf, buflen)) > 0 && - Nwrite (fd, buf, cnt) == cnt) - nbytes += cnt; - } - - if (errno) - err ("IO"); - - - // - // Stop the timers on both sides - // - - - if (SEQUENCE) - ttcp_seq->stop_timer(); - else - ttcp_str->stop_timer(); - - - (void) read_timer (stats, sizeof (stats)); - - - // - // Print the results. - // - - if (cput <= 0.0) - cput = 0.001; - if (realt <= 0.0) - realt = 0.001; - - if (write_to_file) - { - if (title != 0) - { - double tmp; - FILE *fd; - char filename[BUFSIZ]; - ACE_OS::sprintf (filename, "%s.results", title); - fd = fopen(filename,"a+"); - if (new_line) - fprintf(fd,"\n -l %ldk \t", buflen/1024); - tmp = ((double) nbytes) / realt; - fprintf(fd,"%.2f ", tmp * 8.0 / 1024.0 / 1024.0); - fclose(fd); - } - } - - fprintf (stdout, - "\nttcp%s%s: %ld bytes in %.2f real seconds = %s/sec +++\n", - trans ? "-t" : "-r", SEQUENCE ? "(Seq)" : "(Str)", - nbytes, realt, outfmt (((double) nbytes) / realt)); - - if (verbose) - { - fprintf (stdout, - "ttcp%s%s: %ld bytes in %.2f CPU seconds = %s/cpu sec\n", - trans ? "-t" : "-r", SEQUENCE ? "(Seq)" : "(Str)", - nbytes, cput, outfmt (((double) nbytes) / cput)); - } - fprintf (stdout, - "ttcp%s%s: %d I/O calls, msec/call = %.2f, calls/sec = %.2f\n", - trans ? "-t" : "-r", SEQUENCE ? "(Seq)" : "(Str)", - numCalls, - 1024.0 * realt / ((double) numCalls), - ((double) numCalls) / realt); - fprintf (stdout, "ttcp%s%s: %s\n",trans ? "-t" : "-r", SEQUENCE ? "(Seq)" : "(Str)", stats); - if (verbose) - { - fprintf (stdout, - "ttcp%s: buffer address %#x\n", - trans ? "-t" : "-r", - buf); - } - exit (0); - - usage: - fprintf (stderr, Usage); - 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: %s\n", trans ? "-t" : "-r",SEQUENCE ? "(Seq)" : "(Str)", s); -// fprintf (stderr, "ttcp%s: %s\n", trans ? "-t" : "-r", s); -} - -void -pattern (register char *cp, register int cnt) -{ - register char c; - c = 0; - while (cnt-- > 0) - { - while (!isprint ((c & 0x7F))) - c++; - *cp++ = (c++ & 0x7F); - } -} - -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); -} diff --git a/performance-tests/TTCP/ORBeline/ttcp_i.h b/performance-tests/TTCP/ORBeline/ttcp_i.h deleted file mode 100644 index b7a82a1b84a..00000000000 --- a/performance-tests/TTCP/ORBeline/ttcp_i.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ttcp_i.C -// implementation of the ttcp and Profile_Logger objects. - -#if !defined (TTCP_I_H) -#define TTCP_I_H - -// This is a total hack... -#define private public -#include "ttcp_s.hh" -#include "ttcp_c.hh" - -class ttcp_string_i : public ttcp_string_impl { -public: - - ttcp_string_i(); - - virtual void send(const CORBA::String& ttcp_string); - virtual void send_hack(const CORBA::String& ttcp_string); - virtual void start_timer(); - virtual void stop_timer(); - -private: - unsigned long nbytes_; -}; - -class ttcp_sequence_i : public ttcp_sequence_impl { -public: - - ttcp_sequence_i(); - - virtual void send(const ttcp_sequence::my_sequence& ttcp_seq); - virtual void send_hack(const CORBA::String& ttcp_string); - virtual void start_timer(); - virtual void stop_timer(); - -private: - unsigned long nbytes_; -}; - - -#endif diff --git a/performance-tests/TTCP/ORBeline/ttcp_s.cc b/performance-tests/TTCP/ORBeline/ttcp_s.cc deleted file mode 100644 index 514ff8a5d26..00000000000 --- a/performance-tests/TTCP/ORBeline/ttcp_s.cc +++ /dev/null @@ -1,168 +0,0 @@ -/* This file is automatically generated by Orbeline. */ -/* Do not modify this file. */ -/* Orbeline (c) is copyrighted by PostModern Computing, Inc. */ - -#include <ttcp_s.hh> - - - -static CORBA::_PMCSkelFunc _ttcp_sequence_func_array[] = { - &ttcp_sequence_impl::_send, - &ttcp_sequence_impl::_send_hack, - &ttcp_sequence_impl::_start_timer, - &ttcp_sequence_impl::_stop_timer, - 0 - }; -ttcp_sequence_impl::ttcp_sequence_impl(const char *object_name) : - ttcp_sequence(object_name) -{ - _object_name(object_name); - CORBA::Environment _env; - _register_implementation("ttcp_sequence", 4, _ttcp_sequence_func_array, (void *) this, _env); -} -ttcp_sequence_impl::~ttcp_sequence_impl() -{ - CORBA::Environment _env; - _unregister_implementation("ttcp_sequence", (void *) this, _env); -} - - -void ttcp_sequence_impl::_send(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal) { - ttcp_sequence_impl *_impl = (ttcp_sequence_impl *) obj; - _env.clear_exception(); - ttcp_sequence::my_sequence ttcp_rec; - strm.getSequence(ttcp_rec, CORBA::MarshalStream::ARG_IN); - strm.flush(_env); - if (_env.check_exception()) - return; - _impl->_principal(principal); - _impl->send(ttcp_rec); - strm.putEnvironment(_env); - _impl->_principal((CORBA::Principal *) NULL); -} - - -void ttcp_sequence_impl::_send_hack(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal) { - ttcp_sequence_impl *_impl = (ttcp_sequence_impl *) obj; - _env.clear_exception(); - CORBA::String ttcp_string; - strm.getString(ttcp_string, CORBA::MarshalStream::ARG_IN); - strm.flush(_env); - if (_env.check_exception()) - return; - _impl->_principal(principal); - _impl->send_hack(ttcp_string); - strm.putEnvironment(_env); - _impl->_principal((CORBA::Principal *) NULL); -} - - -void ttcp_sequence_impl::_start_timer(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal) { - ttcp_sequence_impl *_impl = (ttcp_sequence_impl *) obj; - _env.clear_exception(); - strm.flush(_env); - if (_env.check_exception()) - return; - _impl->_principal(principal); - _impl->start_timer(); - strm.putEnvironment(_env); - _impl->_principal((CORBA::Principal *) NULL); -} - - -void ttcp_sequence_impl::_stop_timer(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal) { - ttcp_sequence_impl *_impl = (ttcp_sequence_impl *) obj; - _env.clear_exception(); - strm.flush(_env); - if (_env.check_exception()) - return; - _impl->_principal(principal); - _impl->stop_timer(); - strm.putEnvironment(_env); - _impl->_principal((CORBA::Principal *) NULL); -} - -static CORBA::_PMCSkelFunc _ttcp_string_func_array[] = { - &ttcp_string_impl::_send, - &ttcp_string_impl::_send_hack, - &ttcp_string_impl::_start_timer, - &ttcp_string_impl::_stop_timer, - 0 - }; -ttcp_string_impl::ttcp_string_impl(const char *object_name) : - ttcp_string(object_name) -{ - _object_name(object_name); - CORBA::Environment _env; - _register_implementation("ttcp_string", 4, _ttcp_string_func_array, (void *) this, _env); -} -ttcp_string_impl::~ttcp_string_impl() -{ - CORBA::Environment _env; - _unregister_implementation("ttcp_string", (void *) this, _env); -} - -void ttcp_string_impl::_send(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal) { - ttcp_string_impl *_impl = (ttcp_string_impl *) obj; - _env.clear_exception(); - CORBA::String ttcp_string; - strm.getString(ttcp_string, CORBA::MarshalStream::ARG_IN); - strm.flush(_env); - if (_env.check_exception()) - return; - _impl->_principal(principal); - _impl->send(ttcp_string); - strm.putEnvironment(_env); - _impl->_principal((CORBA::Principal *) NULL); -} - - -void ttcp_string_impl::_send_hack(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal) { - ttcp_string_impl *_impl = (ttcp_string_impl *) obj; - _env.clear_exception(); - CORBA::String ttcp_string; - strm.getString(ttcp_string, CORBA::MarshalStream::ARG_IN); - strm.flush(_env); - if (_env.check_exception()) - return; - _impl->_principal(principal); - _impl->send_hack(ttcp_string); - strm.putEnvironment(_env); - _impl->_principal((CORBA::Principal *) NULL); -} - - -void ttcp_string_impl::_start_timer(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal) { - ttcp_string_impl *_impl = (ttcp_string_impl *) obj; - _env.clear_exception(); - strm.flush(_env); - if (_env.check_exception()) - return; - _impl->_principal(principal); - _impl->start_timer(); - strm.putEnvironment(_env); - _impl->_principal((CORBA::Principal *) NULL); -} - - -void ttcp_string_impl::_stop_timer(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal) { - ttcp_string_impl *_impl = (ttcp_string_impl *) obj; - _env.clear_exception(); - strm.flush(_env); - if (_env.check_exception()) - return; - _impl->_principal(principal); - _impl->stop_timer(); - strm.putEnvironment(_env); - _impl->_principal((CORBA::Principal *) NULL); -} - - diff --git a/performance-tests/TTCP/ORBeline/ttcp_s.hh b/performance-tests/TTCP/ORBeline/ttcp_s.hh deleted file mode 100644 index 645981eec22..00000000000 --- a/performance-tests/TTCP/ORBeline/ttcp_s.hh +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef _ttcp_s_hh -#define _ttcp_s_hh - -#include <ttcp_c.hh> -#include <corba.h> - -/* This file is automatically generated by Orbeline. */ -/* Do not modify this file. */ -/* Orbeline (c) is copyrighted by PostModern Computing, Inc. */ - -class ttcp_sequence_impl: public virtual ttcp_sequence -{ - protected: - ttcp_sequence_impl(const char *object_name = NULL); - virtual ~ttcp_sequence_impl(); - public: - virtual const CORBA::TypeInfo *_type_info() const { - return ttcp_sequence::_type_info(); - } - virtual void *_safe_narrow(const CORBA::TypeInfo *inf) const { - return ttcp_sequence::_safe_narrow(inf); - } - virtual const char *_interface_name() const { - return ttcp_sequence::_interface_name(); - } - virtual CORBA::Boolean _is_local() const { return 1; } - - /* The following operations need to be implemented by the server. */ - virtual void send(const ttcp_sequence::my_sequence& ttcp_rec) = 0; - virtual void send_hack(const CORBA::String& ttcp_string) = 0; - virtual void start_timer() = 0; - virtual void stop_timer() = 0; - - /* The following operations are implemented automatically. */ - - static void _send(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal); - - static void _send_hack(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal); - - static void _start_timer(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal); - - static void _stop_timer(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal); - -}; -class ttcp_string_impl: public virtual ttcp_string -{ - protected: - ttcp_string_impl(const char *object_name = NULL); - virtual ~ttcp_string_impl(); - public: - virtual const CORBA::TypeInfo *_type_info() const { - return ttcp_string::_type_info(); - } - virtual void *_safe_narrow(const CORBA::TypeInfo *inf) const { - return ttcp_string::_safe_narrow(inf); - } - virtual const char *_interface_name() const { - return ttcp_string::_interface_name(); - } - virtual CORBA::Boolean _is_local() const { return 1; } - - /* The following operations need to be implemented by the server. */ - virtual void send(const CORBA::String& ttcp_string) = 0; - virtual void send_hack(const CORBA::String& ttcp_string) = 0; - virtual void start_timer() = 0; - virtual void stop_timer() = 0; - - /* The following operations are implemented automatically. */ - - static void _send(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal); - - static void _send_hack(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal); - - static void _start_timer(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal); - - static void _stop_timer(void *obj, CORBA::MarshalStream &strm, - CORBA::Environment& _env, CORBA::Principal *principal); - -}; - -#endif - diff --git a/performance-tests/TTCP/Orbix/How_to_run_tests b/performance-tests/TTCP/Orbix/How_to_run_tests deleted file mode 100644 index 8061c529dd2..00000000000 --- a/performance-tests/TTCP/Orbix/How_to_run_tests +++ /dev/null @@ -1,59 +0,0 @@ -// Orbix -// -// sequence AND string - -// HOSTNAMES: -// for our tests, enatm0-tango.cs.wustl.edu was the receiver hostname used for atm transfers -// tango.cs.wustl.edu was the receiver hostname used for ethernet transfers -// substitute the proper receiver hostname for your system. - -// ORBIX DAEMONS: -// there must be an orbix daemon running on the receiver host in your system. -// in our case, we had an orbix daemon running on tango.cs.wustl.edu - -// ACE_ROOT: -// ACE_ROOT can be set to the root directory of ACE so that these lines -// can be cut and pasted to run tests. - -// Results: -// These examples show the result files being stored in a /results directory off -// the current path. This can be set to whatever you like. - -// ****** sequence ****** - -// ATM with 64k receiver buffers -Receiver_Host: putit ttcp_sequence "$ACE_ROOT/apps/TTCP/Orbix/server -q -s -r -fm -b 65536" -Sender_Host: run_test 64 encip1-tango.cs.wustl.edu ./results/sequence.atm.64 -q - or: client -D -fm -s -t -l 1048576 -n 100 -h encip1-tango.cs.wustl.edu -L ./results/sequence.atm.64 -q - -// ATM with 8k reciever buffers -Receiver_Host: putit ttcp_sequence "$ACE_ROOT/apps/TTCP/Orbix/server -q -s -r -fm" -Sender_Host: run_test 64 encip1-tango.cs.wustl.edu ./results/sequence.atm.8 -q - -// ETHERNET with 64k receiver buffers -Receiver_Host: putit ttcp_sequence "$ACE_ROOT/apps/TTCP/Orbix/server -q -s -r -fm -b 65536" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/sequence.ethernet.64 -q - -// ETHERNET with 8k reciever buffers -Receiver_Host: putit ttcp_sequence "$ACE_ROOT/apps/TTCP/Orbix/server -q -s -r -fm" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/sequence.ethernet.8 -q - -// ****** string ****** - -// ATM with 64k receiver buffers -Receiver_Host: putit ttcp_string "$ACE_ROOT/apps/TTCP/Orbix/server -s -r -fm -b 65536" -Sender_Host: run_test 64 encip1-tango.cs.wustl.edu ./results/string.atm.64 - or: client -D -fm -s -t -l 1048576 -n 100 -h encip1-tango.cs.wustl.edu -L ./results/string.atm.64 - -// ATM with 8k reciever buffers -Receiver_Host: putit ttcp_string "$ACE_ROOT/apps/TTCP/Orbix/server -s -r -fm" -Sender_Host: run_test 64 encip1-tango.cs.wustl.edu ./results/string.atm.8 - -// ETHERNET with 64k receiver buffers -Receiver_Host: putit ttcp_string "$ACE_ROOT/apps/TTCP/Orbix/server -s -r -fm -b 65536" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/string.ethernet.64 - -// ETHERNET with 8k reciever buffers -Receiver_Host: putit ttcp_string "$ACE_ROOT/apps/TTCP/Orbix/server -s -r -fm" -Sender_Host: run_test 64 tango.cs.wustl.edu ./results/string.ethernet.8 - diff --git a/performance-tests/TTCP/Orbix/Makefile b/performance-tests/TTCP/Orbix/Makefile deleted file mode 100644 index 3a8c4a9ffd4..00000000000 --- a/performance-tests/TTCP/Orbix/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -include ./orbix_defaults.mk - -all: client server - @echo - - @echo "\"client\" and \"server\" have been compiled." - @echo - @echo "To run tests, check the how_to_run_tests file." - @echo - -C++FLAGS += -DWANT_ORBIX_FDS -DLM_RESULTS -IDLFLAGS += -c C.cpp -s S.cpp -B -SERVER_OBJS = ttcpS.o ttcp_i.o -CLIENT_OBJS = ttcpC.o ttcp_i.o - -#QUANTIFY = -QUANTIFY = quantify -cache-dir=$(IR)/quantify - -client: $(CLIENT_OBJS) - $(QUANTIFY) $(C++) $(C++FLAGS) -o client $(CLIENT_OBJS) -lITclt $(LDFLAGS) - -server: $(SERVER_OBJS) - $(QUANTIFY) $(C++) $(C++FLAGS) -o server $(SERVER_OBJS) -lITsrv $(LDFLAGS) - -clean: - rm -f core *.o *~ client server - -realclean: - rm -f core *.o *~ client server - diff --git a/performance-tests/TTCP/Orbix/README b/performance-tests/TTCP/Orbix/README deleted file mode 100644 index 6fd64c6fdec..00000000000 --- a/performance-tests/TTCP/Orbix/README +++ /dev/null @@ -1,13 +0,0 @@ -How to compile. - -1. Orbix must be installed. -2. You must set the following paths in ./orbix_defaults.mk -ORBIX_BINDIR = /the/path/to/Orbix/bin -ORBIX_LIBDIR = /the/path/to/Orbix/lib -ORBIX_INCDIR = /the/path/to/Orbix/include - - -How to run tests. -1. Orbix must be installed and proper Orbix environment variables - must be set. (ie. IT_CONFIG_PATH) -2. Read ./how_to_run_tests diff --git a/performance-tests/TTCP/Orbix/orbix_defaults.mk b/performance-tests/TTCP/Orbix/orbix_defaults.mk deleted file mode 100644 index 9a3e83f5fe3..00000000000 --- a/performance-tests/TTCP/Orbix/orbix_defaults.mk +++ /dev/null @@ -1,85 +0,0 @@ - -# These rules define default C++, C++FLAGS and C++SUFFIX. -# C++ is the C++ compiler to use; C++FLAGS are command-line -# flags to the C++ compiler for use in compiling C++ source -# files into objects; C++SUFFIX is the filename suffix -# indicating C++ source. By default, it's set to "C" for AT&T C++, -# and "cc" for GNU g++. - -# Feel free to override these in your Makefiles *after* -# including this file. - -# IMPORTANT: If the -M switch is specified in IDLFLAGS, the IDL -# compiler appends to the user-specified file. The dependency for -# specified_file.o in the linking target should appear _after_ any use -# of the IDL compiler which takes the -M flag. Putting it _last_ -# is normally the best approach. - -# Note that these rule definitions use pattern matching, -# and therefore only work with SunOS make and GNU make. - -# They may not work with other vendor's versions of make. -# If they do not, you may wish to try using GNU make, which -# is free software produced by the Free Software Foundation. - -# If the version of make you wish to use does not support -# pattern matching, use the sample explicit rule set in -# the comments at the end of this file. - -# ------------------------------------------------------------ -# Essential: set these to the locations into which you -# have installed Orbix' components: - -ORBIX_BINDIR = $(ORBIX_ROOT)/bin -ORBIX_LIBDIR = $(ORBIX_ROOT)/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/include - -C++ = CC -C++FLAGS = -I$(ORBIX_INCDIR) -C++SUFFIX = cpp - -LDFLAGS = -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -lnsl -lsocket - -IDL = $(ORBIX_BINDIR)/idl - -IDLFLAGS = - - -# ------------------------------------------------------------ -# The following section defines implicit rules for creating -# *.{client,server}.C files, rules for compiling those -# into objects, and even a rule for compiling C++ source into -# objects (in case one isn't already defined). - -# ------------------------------------------------------------ -# first, put the new suffixes at the *head* of the suffix list, -# overriding any existing .C compilation method. -.SUFFIXES: -.SUFFIXES: .$(C++SUFFIX) .idl $(SUFFIXES) - -# .SUFFIXES: .$(C++SUFFIX) .idl .hh $(SUFFIXES) -# ------------------------------------------------------------ -# *[CS].o must be compiled here, and depends -# mostly on the C++ files produced from the IDL file. - -%C.o: %C.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -%S.o: %S.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -%.o: %.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -# and here's how to compile C++ files from the IDL file. -# only ONE of these rules will be run at make-time, - -%S.$(C++SUFFIX): %.idl - $(IDL) $(IDLFLAGS) $< - -%C.$(C++SUFFIX): %.idl - $(IDL) $(IDLFLAGS) $< - -%.hh: %.idl - $(IDL) $(IDLFLAGS) $< - diff --git a/performance-tests/TTCP/Orbix/run_test b/performance-tests/TTCP/Orbix/run_test deleted file mode 100644 index 842be36c4ac..00000000000 --- a/performance-tests/TTCP/Orbix/run_test +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/csh -f -if ($#argv < 3) then - echo "Usage: sclt <Max msg size> <destination> <TitleOfThisTest> -q" - exit 1 -endif -# -@ msize=1024 -@ limit= ($argv[1] * 1024) -#echo $limit -#echo $msize -echo "Iteration#" 1 ": client -D -fm -s -t -l" $msize "-h" $2 "-L" $3 $4 -client -D -fm -s -t -l $msize -h $2 -x -L $3 $4 -set flag=0 -while ($msize <= $limit) - if ($flag == 0) goto label - echo "Iteration#" 1 ": client -D -fm -s -t -l" $msize "-h" $2 "-x -L" $3 $4 - client -D -fm -s -t -l $msize -h $2 -x -L $3 $4 - label: - set flag=1 - foreach i (2 3 4 5) - echo "Iteration#" $i ": client -D -fm -s -t -l" $msize "-h" $2 "-x -L " $3 $4 - client -D -fm -s -t -l $msize -h $2 -L $3 $4 - end - echo "---------------------------" - @ msize = ($msize * 2) -end - -echo " " -echo "Done at:" -date diff --git a/performance-tests/TTCP/Orbix/ttcp.hh b/performance-tests/TTCP/Orbix/ttcp.hh deleted file mode 100644 index ff24bfe58ec..00000000000 --- a/performance-tests/TTCP/Orbix/ttcp.hh +++ /dev/null @@ -1,376 +0,0 @@ - -#ifndef ttcp_hh -#define ttcp_hh - -#include <CORBA.h> - -#include <string.h> - - -#ifndef _IDL_SEQUENCE_char_defined -#define _IDL_SEQUENCE_char_defined - -struct IONANC__IDL_SEQUENCE_char; -struct _IDL_SEQUENCE_char { - unsigned long _maximum; - unsigned long _length; - char *_buffer; - - operator IONANC__IDL_SEQUENCE_char(); - operator const IONANC__IDL_SEQUENCE_char() const; - _IDL_SEQUENCE_char& operator= (const IONANC__IDL_SEQUENCE_char&); - - _IDL_SEQUENCE_char& operator= (const _IDL_SEQUENCE_char&); - _IDL_SEQUENCE_char (const _IDL_SEQUENCE_char&); - - _IDL_SEQUENCE_char (unsigned long IT_size = 0); - - ~_IDL_SEQUENCE_char () { if (_buffer) delete [] _buffer; } - - char& operator [] (unsigned long IT_i) const {return _buffer[IT_i]; } - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); -}; - -struct IONANC__IDL_SEQUENCE_char { - unsigned long _maximum; - unsigned long _length; - char *_buffer; - - char& operator [] (unsigned long IT_i) const; - - operator _IDL_SEQUENCE_char (); - - operator const _IDL_SEQUENCE_char () const; - -}; - - - -#endif - - -#ifndef _ttcp_sequence_defined -#define _ttcp_sequence_defined -class ttcp_sequence_dispatch : public virtual CORBA::PPTR { -public: - - ttcp_sequence_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - ttcp_sequence_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - ttcp_sequence_dispatch () {} - - ttcp_sequence_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {} - - - virtual unsigned char dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void* IT_pp=NULL); - - -}; - -class ttcp_sequence; - - -#ifndef ttcp_sequenceForwH -#define ttcp_sequenceForwH -CORBA::ObjectRef ttcp_sequence_getBase (void *); -void ttcp_sequence_release (void *, CORBA::Environment &IT_env=CORBA::default_environment); -ttcp_sequence* ttcp_sequence_duplicate (void *, CORBA::Environment &IT_env=CORBA::default_environment); -#endif -#define ttcp_sequence_IMPL "ttcp_sequence" - - -class ttcp_sequence; -#define ttcp_sequence_IR "ttcp_sequence" -#define ttcp_sequence_IMPL "ttcp_sequence" - -typedef ttcp_sequence* ttcp_sequenceRef; -typedef ttcp_sequence* ttcp_sequence_ptr; -class ttcp_sequence: public virtual CORBA::Object { -public: - ttcp_sequence (char *IT_OR); - ttcp_sequence () : CORBA::Object (1) {} - ttcp_sequence* _duplicate( - CORBA::Environment &IT_env=CORBA::default_environment) { - CORBA::Object::_duplicate (IT_env); return this; } - static ttcp_sequence* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::default_environment); - static ttcp_sequence* _bind (CORBA::Environment &IT_env); - static ttcp_sequence* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::default_environment); - static ttcp_sequence* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::default_environment); -typedef _IDL_SEQUENCE_char my_sequence; - virtual long send (const ttcp_sequence::my_sequence& ttcp_seq, CORBA::Environment &IT_env=CORBA::default_environment); - virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment); - virtual void stop_timer (CORBA::Environment &IT_env=CORBA::default_environment); -}; - - -#define TIE_ttcp_sequence(X) ttcp_sequence##X - -#define DEF_TIE_ttcp_sequence(X) \ - class ttcp_sequence##X : public virtual ttcp_sequence { \ - X* m_obj; \ - public: \ - \ - ttcp_sequence##X (X *objp, const char* m="", CORBA::LoaderClass *l=nil)\ - : ttcp_sequence(), CORBA::Object (), m_obj(objp) { \ - m_pptr = new ttcp_sequence_dispatch \ - (( ttcp_sequence*)this,(CORBA::Object*)this,m,l,ttcp_sequence_IR,m_obj); \ - } \ - ttcp_sequence##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=nil)\ - : ttcp_sequence(), CORBA::Object () { \ - m_pptr = new ttcp_sequence_dispatch \ - (( ttcp_sequence*)this,(CORBA::Object*)this,IT_m,ttcp_sequence_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~ttcp_sequence##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - \ - virtual void* _deref () { \ - return m_obj; } \ - \ - virtual long send (const ttcp_sequence::my_sequence& ttcp_seq, CORBA::Environment &IT_env) {\ -return m_obj->send ( ttcp_seq,IT_env);\ -}\ - \ - virtual void start_timer (CORBA::Environment &IT_env) {\ -m_obj->start_timer (IT_env);\ -}\ - \ - virtual void stop_timer (CORBA::Environment &IT_env) {\ -m_obj->stop_timer (IT_env);\ -}\ - \ - }; - - -#define QUALS_ttcp_sequence \ - virtual long send (const ttcp_sequence::my_sequence& ttcp_seq, CORBA::Environment &IT_env) {\ -return m_obj->send ( ttcp_seq,IT_env);\ -}\ - \ - virtual void start_timer (CORBA::Environment &IT_env) {\ -m_obj->start_timer (IT_env);\ -}\ - \ - virtual void stop_timer (CORBA::Environment &IT_env) {\ -m_obj->stop_timer (IT_env);\ -}\ - - - - -class ttcp_sequenceProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - ttcp_sequenceProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (ttcp_sequence_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual void* IT_castUp (void *IT_p, char* IT_s); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern ttcp_sequenceProxyFactoryClass ttcp_sequenceProxyFactory; - - - -class ttcp_sequenceBOAImpl : public virtual ttcp_sequence { -public: - ttcp_sequenceBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, ttcp_sequence_IR)) - m_pptr = new ttcp_sequence_dispatch ( (ttcp_sequence*)this, - (CORBA::Object*)this, m, l, ttcp_sequence_IR, this); -} - - virtual long send (const ttcp_sequence::my_sequence& ttcp_seq, CORBA::Environment &IT_env=CORBA::default_environment) =0; - virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment) =0; - virtual void stop_timer (CORBA::Environment &IT_env=CORBA::default_environment) =0; -}; - - -#endif - - -#ifndef _ttcp_string_defined -#define _ttcp_string_defined -class ttcp_string_dispatch : public virtual CORBA::PPTR { -public: - - ttcp_string_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - ttcp_string_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - ttcp_string_dispatch () {} - - ttcp_string_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {} - - - virtual unsigned char dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void* IT_pp=NULL); - - -}; - -class ttcp_string; - - -#ifndef ttcp_stringForwH -#define ttcp_stringForwH -CORBA::ObjectRef ttcp_string_getBase (void *); -void ttcp_string_release (void *, CORBA::Environment &IT_env=CORBA::default_environment); -ttcp_string* ttcp_string_duplicate (void *, CORBA::Environment &IT_env=CORBA::default_environment); -#endif -#define ttcp_string_IMPL "ttcp_string" - - -class ttcp_string; -#define ttcp_string_IR "ttcp_string" -#define ttcp_string_IMPL "ttcp_string" - -typedef ttcp_string* ttcp_stringRef; -typedef ttcp_string* ttcp_string_ptr; -class ttcp_string: public virtual CORBA::Object { -public: - ttcp_string (char *IT_OR); - ttcp_string () : CORBA::Object (1) {} - ttcp_string* _duplicate( - CORBA::Environment &IT_env=CORBA::default_environment) { - CORBA::Object::_duplicate (IT_env); return this; } - static ttcp_string* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::default_environment); - static ttcp_string* _bind (CORBA::Environment &IT_env); - static ttcp_string* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::default_environment); - static ttcp_string* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::default_environment); - virtual long send (const char * ttcp_str, CORBA::Environment &IT_env=CORBA::default_environment); - virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment); - virtual void stop_timer (CORBA::Environment &IT_env=CORBA::default_environment); -}; - - -#define TIE_ttcp_string(X) ttcp_string##X - -#define DEF_TIE_ttcp_string(X) \ - class ttcp_string##X : public virtual ttcp_string { \ - X* m_obj; \ - public: \ - \ - ttcp_string##X (X *objp, const char* m="", CORBA::LoaderClass *l=nil)\ - : ttcp_string(), CORBA::Object (), m_obj(objp) { \ - m_pptr = new ttcp_string_dispatch \ - (( ttcp_string*)this,(CORBA::Object*)this,m,l,ttcp_string_IR,m_obj); \ - } \ - ttcp_string##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=nil)\ - : ttcp_string(), CORBA::Object () { \ - m_pptr = new ttcp_string_dispatch \ - (( ttcp_string*)this,(CORBA::Object*)this,IT_m,ttcp_string_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~ttcp_string##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - \ - virtual void* _deref () { \ - return m_obj; } \ - \ - virtual long send (const char * ttcp_str, CORBA::Environment &IT_env) {\ -return m_obj->send ( ttcp_str,IT_env);\ -}\ - \ - virtual void start_timer (CORBA::Environment &IT_env) {\ -m_obj->start_timer (IT_env);\ -}\ - \ - virtual void stop_timer (CORBA::Environment &IT_env) {\ -m_obj->stop_timer (IT_env);\ -}\ - \ - }; - - -#define QUALS_ttcp_string \ - virtual long send (const char * ttcp_str, CORBA::Environment &IT_env) {\ -return m_obj->send ( ttcp_str,IT_env);\ -}\ - \ - virtual void start_timer (CORBA::Environment &IT_env) {\ -m_obj->start_timer (IT_env);\ -}\ - \ - virtual void stop_timer (CORBA::Environment &IT_env) {\ -m_obj->stop_timer (IT_env);\ -}\ - - - - -class ttcp_stringProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - ttcp_stringProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (ttcp_string_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual void* IT_castUp (void *IT_p, char* IT_s); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern ttcp_stringProxyFactoryClass ttcp_stringProxyFactory; - - - -class ttcp_stringBOAImpl : public virtual ttcp_string { -public: - ttcp_stringBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, ttcp_string_IR)) - m_pptr = new ttcp_string_dispatch ( (ttcp_string*)this, - (CORBA::Object*)this, m, l, ttcp_string_IR, this); -} - - virtual long send (const char * ttcp_str, CORBA::Environment &IT_env=CORBA::default_environment) =0; - virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment) =0; - virtual void stop_timer (CORBA::Environment &IT_env=CORBA::default_environment) =0; -}; - - -#endif - - -#endif diff --git a/performance-tests/TTCP/Orbix/ttcp.idl b/performance-tests/TTCP/Orbix/ttcp.idl deleted file mode 100644 index 9ceef61e0a3..00000000000 --- a/performance-tests/TTCP/Orbix/ttcp.idl +++ /dev/null @@ -1,22 +0,0 @@ -/* -*- C++ -*- */ -// @(#)ttcp.idl 1.1 10/18/96 - - -interface ttcp_sequence -{ - typedef sequence<char> my_sequence; - - long send (in my_sequence ttcp_seq); - oneway void start_timer (); - oneway void stop_timer (); -}; - -interface ttcp_string -{ - long send (in string ttcp_str); - oneway void start_timer (); - oneway void stop_timer (); -}; - - - diff --git a/performance-tests/TTCP/Orbix/ttcpC.cpp b/performance-tests/TTCP/Orbix/ttcpC.cpp deleted file mode 100644 index 1e623b01f2e..00000000000 --- a/performance-tests/TTCP/Orbix/ttcpC.cpp +++ /dev/null @@ -1,343 +0,0 @@ - -// $Id$ - -#include "ttcp.hh" - - -#ifndef _IDL_SEQUENCE_char_Ops -#define _IDL_SEQUENCE_char_Ops - -_IDL_SEQUENCE_char &_IDL_SEQUENCE_char:: operator= (const IONANC__IDL_SEQUENCE_char& IT_p) { - this->operator= (*(_IDL_SEQUENCE_char*) &IT_p); - return (*this); -} - -_IDL_SEQUENCE_char:: operator IONANC__IDL_SEQUENCE_char () { - IONANC__IDL_SEQUENCE_char tmp; - memset (&tmp, 0, sizeof(tmp)); - ((_IDL_SEQUENCE_char *) &tmp)->operator= (*this); - return tmp; -} - -_IDL_SEQUENCE_char:: operator const IONANC__IDL_SEQUENCE_char () const { - IONANC__IDL_SEQUENCE_char tmp; - memset (&tmp, 0, sizeof(tmp)); - ((_IDL_SEQUENCE_char *) &tmp)->operator= (*this); - return tmp; -} - -_IDL_SEQUENCE_char& _IDL_SEQUENCE_char:: operator= (const _IDL_SEQUENCE_char &IT_s){ - if (this == &IT_s) return *this; - if (_buffer) delete [] _buffer; - _length = IT_s._length; - _maximum = IT_s._maximum; - if (_maximum) { - _buffer = new char [ _maximum ]; - for (unsigned long IT_j=0; IT_j < _length; IT_j++) - _buffer [IT_j] = IT_s._buffer[IT_j]; - } - else - _buffer = NULL; - return *this; -} - -_IDL_SEQUENCE_char:: _IDL_SEQUENCE_char (unsigned long IT_size) { - if (IT_size) - _buffer = new char [ IT_size ]; - else - _buffer = NULL; - _length = 0; - _maximum = IT_size; - } - -_IDL_SEQUENCE_char:: _IDL_SEQUENCE_char (const _IDL_SEQUENCE_char &IT_s) { - _length = IT_s._length; - _maximum = IT_s._maximum; - if (_maximum) { - _buffer = new char [ _maximum ]; - for (unsigned long IT_j=0; IT_j < _length; IT_j++) - _buffer [IT_j] = IT_s._buffer[IT_j]; - } - else - _buffer = NULL; -} - -void _IDL_SEQUENCE_char:: decodeInOutOp (CORBA::Request &IT_r) { - unsigned long IT_max; - IT_r >> IT_max; - if (IT_max > _maximum) - IT_r.makeRuntimeException3 (); - else { - IT_r >> _length; - if (_length > _maximum) - IT_r.makeRuntimeException4 (); - else - if (_maximum) { - char* IT_arr = (char*) _buffer; - IT_r.decodeCharArray (IT_arr, _length); - } - } -} - -void _IDL_SEQUENCE_char:: encodeOp (CORBA::Request &IT_r) const { - IT_r << _maximum; - IT_r << _length; -if (_maximum) { - char* IT_arr = (char*) _buffer; - IT_r.encodeCharArray (IT_arr, _length); -} -} - -void _IDL_SEQUENCE_char:: decodeOp (CORBA::Request &IT_r) { - IT_r >> _maximum; - IT_r >> _length; - if (_maximum) { - _buffer = new char [ _maximum ]; - { - char* IT_arr = (char*) _buffer; - IT_r.decodeCharArray (IT_arr, _length); - } - } - else - _buffer = NULL; -} - -char &IONANC__IDL_SEQUENCE_char:: operator [](unsigned long IT_i) const { - return _buffer[IT_i]; -} - -IONANC__IDL_SEQUENCE_char:: operator _IDL_SEQUENCE_char () { - return (*((_IDL_SEQUENCE_char *) this)); -} - -IONANC__IDL_SEQUENCE_char:: operator const _IDL_SEQUENCE_char () const { - return (*((const _IDL_SEQUENCE_char *) this)); -} - - -#endif - -ttcp_sequence::ttcp_sequence (char *IT_OR) { - m_pptr = new ttcp_sequence_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef ttcp_sequenceForwC -#define ttcp_sequenceForwC -CORBA::ObjectRef ttcp_sequence_getBase(void *IT_p){ - return (ttcp_sequence*)IT_p;} - -void ttcp_sequence_release (void *IT_p, CORBA::Environment &IT_env) { - ((ttcp_sequence*)IT_p)->_release(IT_env);} - -ttcp_sequence* ttcp_sequence_duplicate (void *IT_p, CORBA::Environment &IT_env) { - return ((ttcp_sequence*)IT_p)->_duplicate(IT_env); } -#endif - - - -ttcp_sequence* ttcp_sequence:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - ttcp_sequence*IT_p = - (ttcp_sequence*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - ttcp_sequence_IMPL, ttcp_sequence_IR); - return IT_p ? IT_p->_duplicate () : NULL; } - - - -ttcp_sequence* ttcp_sequence:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -ttcp_sequence* ttcp_sequence:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -ttcp_sequence* ttcp_sequence::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_env) { - ttcp_sequence* IT_p = (ttcp_sequence*)CORBA::Object::_castDown (IT_obj, ttcp_sequence_IR, IT_env); - return IT_p ? IT_p->_duplicate(IT_env) : NULL; - } - -void* ttcp_sequenceProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new ttcp_sequence(IT_OR);} - -void* ttcp_sequenceProxyFactoryClass::New2 () { - return new ttcp_sequence();} - -void* ttcp_sequenceProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,ttcp_sequence_IR)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((ttcp_sequence*)IT_p),IT_s)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* ttcp_sequenceProxyFactoryClass::pptr (void *IT_p) { - return ((ttcp_sequence*)IT_p)->_pptr ();} - -void ttcp_sequenceProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, ttcp_sequence_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -long ttcp_sequence:: send(const ttcp_sequence::my_sequence& ttcp_seq, CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return 0; - CORBA::Request IT_r (this, "send",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - ttcp_seq.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - return 0; -} - -void ttcp_sequence:: start_timer(CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return ; - CORBA::Request IT_r (this, "start_timer",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); -} - -void ttcp_sequence:: stop_timer(CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return ; - CORBA::Request IT_r (this, "stop_timer",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); -} - - -ttcp_sequenceProxyFactoryClass ttcp_sequenceProxyFactory(1); - - -#ifndef ttcp_sequence_dispatch_impl - -unsigned char ttcp_sequence_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("ttcp_sequence"); - return 0; -} - -#endif - -ttcp_string::ttcp_string (char *IT_OR) { - m_pptr = new ttcp_string_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef ttcp_stringForwC -#define ttcp_stringForwC -CORBA::ObjectRef ttcp_string_getBase(void *IT_p){ - return (ttcp_string*)IT_p;} - -void ttcp_string_release (void *IT_p, CORBA::Environment &IT_env) { - ((ttcp_string*)IT_p)->_release(IT_env);} - -ttcp_string* ttcp_string_duplicate (void *IT_p, CORBA::Environment &IT_env) { - return ((ttcp_string*)IT_p)->_duplicate(IT_env); } -#endif - - - -ttcp_string* ttcp_string:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - ttcp_string*IT_p = - (ttcp_string*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - ttcp_string_IMPL, ttcp_string_IR); - return IT_p ? IT_p->_duplicate () : NULL; } - - - -ttcp_string* ttcp_string:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -ttcp_string* ttcp_string:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -ttcp_string* ttcp_string::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_env) { - ttcp_string* IT_p = (ttcp_string*)CORBA::Object::_castDown (IT_obj, ttcp_string_IR, IT_env); - return IT_p ? IT_p->_duplicate(IT_env) : NULL; - } - -void* ttcp_stringProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new ttcp_string(IT_OR);} - -void* ttcp_stringProxyFactoryClass::New2 () { - return new ttcp_string();} - -void* ttcp_stringProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,ttcp_string_IR)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((ttcp_string*)IT_p),IT_s)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* ttcp_stringProxyFactoryClass::pptr (void *IT_p) { - return ((ttcp_string*)IT_p)->_pptr ();} - -void ttcp_stringProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, ttcp_string_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -long ttcp_string:: send(const char * ttcp_str, CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return 0; - CORBA::Request IT_r (this, "send",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - IT_r.encodeStringOp (ttcp_str); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - return 0; -} - -void ttcp_string:: start_timer(CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return ; - CORBA::Request IT_r (this, "start_timer",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); -} - -void ttcp_string:: stop_timer(CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return ; - CORBA::Request IT_r (this, "stop_timer",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); -} - - -ttcp_stringProxyFactoryClass ttcp_stringProxyFactory(1); - - -#ifndef ttcp_string_dispatch_impl - -unsigned char ttcp_string_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("ttcp_string"); - return 0; -} - -#endif - diff --git a/performance-tests/TTCP/Orbix/ttcpS.cpp b/performance-tests/TTCP/Orbix/ttcpS.cpp deleted file mode 100644 index 0b31298d758..00000000000 --- a/performance-tests/TTCP/Orbix/ttcpS.cpp +++ /dev/null @@ -1,159 +0,0 @@ - -// $Id$ - -#include "ttcp.hh" - - -#define ttcp_sequence_dispatch_impl - -unsigned char ttcp_sequence_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void *IT_pp) { - if (!IT_pp) - IT_pp = m_obj; - const char *IT_s = IT_r.getOperation (); - if (!strcmp(IT_s,"send")) { - long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~send~+ttcp_seq{S{c},0},>{l},N{}\ -")) - return 1; - ttcp_sequence::my_sequence ttcp_seq; - ttcp_seq.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - IT_result = ((ttcp_sequence*)IT_pp)->send ( ttcp_seq, IT_env); - - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - else if (!strcmp(IT_s,"start_timer")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~start_timer~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((ttcp_sequence*)IT_pp)->start_timer (IT_env); - - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - else if (!strcmp(IT_s,"stop_timer")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~stop_timer~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((ttcp_sequence*)IT_pp)->stop_timer (IT_env); - - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - else if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#define ttcp_string_dispatch_impl - -unsigned char ttcp_string_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void *IT_pp) { - if (!IT_pp) - IT_pp = m_obj; - const char *IT_s = IT_r.getOperation (); - if (!strcmp(IT_s,"send")) { - long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~send~+ttcp_str{0},>{l},N{}\ -")) - return 1; - char * ttcp_str; - IT_r.decodeStringOp(ttcp_str); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - IT_result = ((ttcp_string*)IT_pp)->send ( ttcp_str, IT_env); - - delete [] ttcp_str; - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - else if (!strcmp(IT_s,"start_timer")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~start_timer~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((ttcp_string*)IT_pp)->start_timer (IT_env); - - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - else if (!strcmp(IT_s,"stop_timer")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~stop_timer~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((ttcp_string*)IT_pp)->stop_timer (IT_env); - - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - else if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "ttcpC.cpp" - diff --git a/performance-tests/TTCP/Orbix/ttcp_i.cpp b/performance-tests/TTCP/Orbix/ttcp_i.cpp deleted file mode 100644 index f1f5f2001c1..00000000000 --- a/performance-tests/TTCP/Orbix/ttcp_i.cpp +++ /dev/null @@ -1,1013 +0,0 @@ - -// $Id$ - -/* - * T T C P . C - * - */ -#ifndef lint -static char RCSid[] = "ttcp.c $Revision$"; -#endif - -/* #define BSD43 */ -/* #define BSD42 */ -/* #define BSD41a */ -#define SYSV /* required on SGI IRIX releases before 3.3 */ - -#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> - -#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> -struct rusage - { - struct timeval ru_utime, ru_stime; - }; -#define RUSAGE_SELF 0 - -#else -#include <sys/resource.h> -#endif - -void err (char *s); -void mes (char *s); -void pattern (register char *cp, register int cnt); -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); -static void SD_Ready (int io_descriptor); -void set_sock_desc(int starter); -void c_stop_timer (unsigned long numbytes); - -int global_done = 0; - -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 = 1024 * 1024 * 2; /* 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)*/ -int SEQUENCE=0; /* String parameter is the 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; -extern int errno; -extern int optind; -extern char *optarg; -char *title = 0; - -char stats[128]; -unsigned long nbytes; /* bytes on net */ -unsigned long numCalls; /* # of I/O system calls */ -double cput, realt; /* user, real time (seconds) */ - -// AAAAHHHHHHH what's this!!! C++ in the middle of C code???????!!!!!! - - -#include <iostream.h> -#include "ttcp_i.h" - -char *orb_host; - -// ttcp_i is the server side - - - -// ttcp_i is the server side - -static void -SD_Ready (int io_descriptor) -{ - cout << "Orbix is using " << io_descriptor << endl; - if (sockbufsize) - { - if (setsockopt (io_descriptor, SOL_SOCKET, SO_RCVBUF, (char *) &sockbufsize, - sizeof sockbufsize) < 0) - perror ("setsockopt: rcvbuf"), exit (1); - } -} - - -ttcp_sequence_i::ttcp_sequence_i() -{ - this->nbytes_ = 0; - // register a callback so we can futs with the descriptor - // being used by orbix. - - if (CORBA::Orbix.registerIOCallback (OrbixIOCallback(SD_Ready), FD_OPEN_CALLBACK) != 0) - perror ("can't register callback"), exit (1); -} - -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) -{ - c_stop_timer (this->nbytes_); - global_done = 1; -} - -long -ttcp_sequence_i::send(const ttcp_sequence::my_sequence& ttcp_seq,CORBA::Environment &IT_env) -{ - this->nbytes_ += ttcp_seq._length; - return this->nbytes_; -} - -ttcp_string_i::ttcp_string_i() -{ - this->nbytes_ = 0; - // register a callback so we can futs with the descriptor - // being used by orbix. - if (CORBA::Orbix.registerIOCallback (OrbixIOCallback(SD_Ready), FD_OPEN_CALLBACK) != 0) - perror ("can't register callback"), exit (1); -} - -void -ttcp_string_i::start_timer (CORBA::Environment &IT_env) -{ - prep_timer (); -} - - -void -ttcp_string_i::stop_timer (CORBA::Environment &IT_env) -{ - c_stop_timer (this->nbytes_); - global_done = 1; -} - -long -ttcp_string_i::send(const char * ttcp_string,CORBA::Environment &IT_env) -{ - this->nbytes_ += strlen (ttcp_string); - return this->nbytes_; -} - -// common to sequence and string -void -c_stop_timer (unsigned long numbytes) -{ - (void) read_timer (stats, sizeof (stats)); - - if (cput <= 0.0) - cput = 0.001; - if (realt <= 0.0) - realt = 0.001; - fprintf (stdout, - "ttcp%s%s: %ld bytes in %.2f real seconds = %s/sec +++\n", - trans ? "-t" : "-r", SEQUENCE ? "(Seq)" : "(Str)", - numbytes, realt, outfmt (((double) numbytes) / realt)); - - - if (verbose) - { - fprintf (stdout, - "ttcp%s%s: %ld bytes in %.2f CPU seconds = %s/cpu sec\n", - trans ? "-t" : "-r",SEQUENCE ? "(Seq)" : "(Str)", - numbytes, cput, outfmt (((double) numbytes) / cput)); - } - fprintf (stdout, - "ttcp%s%s: %d I/O calls, msec/call = %.2f, calls/sec = %.2f\n", - trans ? "-t" : "-r",SEQUENCE ? "(Seq)" : "(Str)", - numCalls, - 1024.0 * realt / ((double) numCalls), - ((double) numCalls) / realt); - fprintf (stdout, "ttcp%s%s: %s\n", trans ? "-t" : "-r",SEQUENCE ? "(Seq)" : "(Str)", stats); - if (verbose) - { - fprintf (stdout, - "ttcp%s: buffer address %#x\n", - trans ? "-t" : "-r", - buf); - } -numbytes = 0; - - // you shoudl exit here when you use -p (profiler) so the server will - // produce mon.out -#ifdef PROFILE - exit(1); -#endif -} // end of stop_timer - - -char Usage[] = "\ -Usage: ttcp -t [-options] host [ < in ]\n\ - ttcp -r [-options > out]\n\ -Common options:\n\ - -l ## length of bufs read from or written to network (default 8192)\n\ - -u use UDP instead of TCP\n\ - -U use UNIX domain sockets instead of Internet domain sockets\n\ - -p ## port number to send to or listen at (default 5001)\n\ - -s -t: source a pattern to network\n\ - -r: sink (discard) all data from network\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\ -Options specific to -t:\n\ - -n## number of source bufs written to network (default 2048)\n\ - -D don't buffer TCP writes (sets TCP_NODELAY socket option)\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\ - -L<test_title> the title of the current test\n\ - -F don't write to a file (writting in a file dat.out is default)\n\ - -q run the test using sequence parameter (string is defualt) \n\ -"; - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else -void -sigpipe () -#endif -{ -} - -int -main (int argc, char *argv[]) -{ - - unsigned long addr_tmp; - int c; - - if (argc < 2) - goto usage; - - while ((c = getopt (argc, argv, "qFdrstU:uvBDTb:L:f:l:n:p:A:O:h:x")) != -1) - { - switch (c) - { - case 'L': - title = optarg; - fprintf(stdout,"---->title=%s\n",title); - break; - case 'x': - new_line = 1; - break; - case 'q': - SEQUENCE = 1; - break; - case 'F': - write_to_file = 0; - break; - case 'h': - orb_host = optarg; - break; - case 'B': - b_flag = 1; - break; - case 't': - trans = 1; - break; - case 'r': - trans = 0; - break; - case 'd': - options |= SO_DEBUG; - 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 's': - sinkmode = !sinkmode; - break; - case 'p': - port = atoi (optarg); - break; - case 'U': - domain = PF_UNIX; - domainname = optarg; - break; - case 'u': - udp = 1; - 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 'T': - touchdata = 1; - break; - - default: - goto usage; - } - } - - // - // Receiver - // - - if (!trans) - { - - // Sequence and String Interfaces - // instantiate ONLY one object at a time, so no dispatching overhead is counted - char *interface_name = new char[15]; - if (SEQUENCE) - { - ttcp_sequence *my_ttcp = new ttcp_sequence_i; - strcpy(interface_name,"ttcp_sequence"); - } - else - { - ttcp_string *my_ttcp_s = new ttcp_string_i; - strcpy(interface_name,"ttcp_string"); - } - - // tell Orbix/ORBeline that we have completed the server's initialization: - TRY { - CORBA::Orbix.impl_is_ready(interface_name, 0, IT_X); - - while ((!global_done) && (!IT_X)) - CORBA::Orbix.processNextEvent (CORBA::ORB::INFINITE_TIMEOUT, IT_X); - } - CATCHANY { - // an error occured calling impl_is_ready() - output the error. - cout << IT_X; - } - ENDTRY; - - cout << "server exiting" << endl; - return 0; - } - - // - // Transmitter - // - -// CORBA::Environment env; - ttcp_sequence *ttcp_seq; - ttcp_string *ttcp_str; - - - CORBA::Object *ttcp_; - - if (SEQUENCE) - { - TRY - { - ttcp_ = ttcp_seq = ttcp_sequence::_bind ("", orb_host, IT_X); - } - CATCHANY - { - // an error occurred while trying to bind to the logger object. - cerr << "Bind to object failed" << endl; - cerr << "Unexpected exception " << IT_X << endl; - return -1; - } ENDTRY; - - } - else // string parameter used - { - TRY - { - ttcp_ = ttcp_str = ttcp_string::_bind ("", orb_host, IT_X); - } - CATCHANY - { - // an error occurred while trying to bind to the logger object. - cerr << "Bind to object failed" << endl; - cerr << "Unexpected exception " << IT_X << endl; - return -1; - } ENDTRY; - } - - if (sockbufsize) - { - if (setsockopt (ttcp_->_fd (), SOL_SOCKET, SO_SNDBUF, (char *) &sockbufsize, - sizeof sockbufsize) < 0) - err ("setsockopt: sndbuf"); - mes ("sndbuf"); - } - - if (nodelay) - { - struct protoent *p; - p = getprotobyname ("tcp"); - if (setsockopt (ttcp_->_fd (), - p->p_proto, - TCP_NODELAY, - (char *)& one, - sizeof (one))) - err ("setsockopt: nodelay"); - mes ("nodelay"); - } - - // - // Prepare the Message to be sent - // - - errno = 0; - if (sinkmode) - { - if ((buf = (char *) malloc (buflen + bufalign)) == (char *) NULL) - err ("malloc"); - if (bufalign != 0) - buf += (bufalign - ((int) buf % bufalign) + bufoffset) % bufalign; - - // ttcp_sequence::my_sequence sequence_message; ORBIX - ttcp_sequence::my_sequence message (buflen + 1); - ::buf[::buflen-1] = '\0'; - if (SEQUENCE) - { - message._maximum = buflen; - message._length = buflen; - message._buffer = buf; - } - - - pattern (buf, buflen); - // - // Start the timers on the client and server sides - // - - prep_timer (); - - if (SEQUENCE) - ttcp_seq->start_timer (); - else - ttcp_str->start_timer (); - while (nbuf--) - { - if (SEQUENCE) - ttcp_seq->send (message); - else - ttcp_str->send (buf); - - numCalls++; - nbytes += buflen; - } - - } - else - { - register int cnt; - while ((cnt = read (0, buf, buflen)) > 0 && - Nwrite (fd, buf, cnt) == cnt) - nbytes += cnt; - } - - if (errno) - err ("IO"); - - - // - // Stop the timers on both sides - // - - - if (SEQUENCE) - ttcp_seq->stop_timer(); - else - ttcp_str->stop_timer(); - - - (void) read_timer (stats, sizeof (stats)); - - - // - // Print the results. - // - - if (cput <= 0.0) - cput = 0.001; - if (realt <= 0.0) - realt = 0.001; - - if (write_to_file) - { - if (title != 0) - { - double tmp; - FILE *fd; - char filename[BUFSIZ]; - sprintf (filename, "%s.results", title); - fd = fopen(filename,"a+"); - if (new_line) - fprintf(fd,"\n -l %ldk \t", buflen/1024); - tmp = ((double) nbytes) / realt; - fprintf(fd,"%.2f ", tmp * 8.0 / 1024.0 / 1024.0); - fclose(fd); - } - } - - fprintf (stdout, - "\nttcp%s%s: %ld bytes in %.2f real seconds = %s/sec +++\n", - trans ? "-t" : "-r", SEQUENCE ? "(Seq)" : "(Str)", - nbytes, realt, outfmt (((double) nbytes) / realt)); - - if (verbose) - { - fprintf (stdout, - "ttcp%s%s: %ld bytes in %.2f CPU seconds = %s/cpu sec\n", - trans ? "-t" : "-r", SEQUENCE ? "(Seq)" : "(Str)", - nbytes, cput, outfmt (((double) nbytes) / cput)); - } - fprintf (stdout, - "ttcp%s%s: %d I/O calls, msec/call = %.2f, calls/sec = %.2f\n", - trans ? "-t" : "-r", SEQUENCE ? "(Seq)" : "(Str)", - numCalls, - 1024.0 * realt / ((double) numCalls), - ((double) numCalls) / realt); - fprintf (stdout, "ttcp%s%s: %s\n",trans ? "-t" : "-r", SEQUENCE ? "(Seq)" : "(Str)", stats); - if (verbose) - { - fprintf (stdout, - "ttcp%s: buffer address %#x\n", - trans ? "-t" : "-r", - buf); - } - exit (0); - - usage: - fprintf (stderr, Usage); - 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: %s\n", trans ? "-t" : "-r",SEQUENCE ? "(Seq)" : "(Str)", s); -// fprintf (stderr, "ttcp%s: %s\n", trans ? "-t" : "-r", s); -} - -void -pattern (register char *cp, register int cnt) -{ - register char c; - c = 0; - while (cnt-- > 0) - { - while (!isprint ((c & 0x7F))) - c++; - *cp++ = (c++ & 0x7F); - } -} - -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); -} diff --git a/performance-tests/TTCP/Orbix/ttcp_i.h b/performance-tests/TTCP/Orbix/ttcp_i.h deleted file mode 100644 index 5db365ee4d1..00000000000 --- a/performance-tests/TTCP/Orbix/ttcp_i.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ttcp_i.C -// - -#if !defined (TTCP_I_H) -#define TTCP_I_H - -#include "ttcp.hh" - -class ttcp_sequence_i - : virtual public ttcp_sequenceBOAImpl -{ -public: - ttcp_sequence_i(); - - virtual long send (const ttcp_sequence::my_sequence& ttcp_seq, CORBA::Environment &IT_env=CORBA::default_environment); - virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment); - virtual void stop_timer (CORBA::Environment &IT_env=CORBA::default_environment); -private: - unsigned long nbytes_; -}; - -// DEF_TIE_ttcp_sequence (ttcp_sequence_i); - -class ttcp_string_i - : virtual public ttcp_stringBOAImpl -{ -public: - ttcp_string_i(); - - virtual long send (const char * ttcp_string, CORBA::Environment &IT_env=CORBA::default_environment); - virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment); - virtual void stop_timer (CORBA::Environment &IT_env=CORBA::default_environment); -private: - unsigned long nbytes_; -}; - -#endif defined (TTCP_I_H) - - - - - |