diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2008-03-04 14:51:23 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2008-03-04 14:51:23 +0000 |
commit | 99aa8c60282c7b8072eb35eb9ac815702f5bf586 (patch) | |
tree | bda96bf8c3a4c2875a083d7b16720533c8ffeaf4 /ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp | |
parent | c4078c377d74290ebe4e66da0b4975da91732376 (diff) | |
download | ATCD-99aa8c60282c7b8072eb35eb9ac815702f5bf586.tar.gz |
undoing accidental deletion
Diffstat (limited to 'ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp')
-rw-r--r-- | ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp new file mode 100644 index 00000000000..4b183e3fca4 --- /dev/null +++ b/ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp @@ -0,0 +1,124 @@ +// $Id$ + +// Test program for the INET ACE_TLI-SAPs... + +#include "ace/OS_main.h" +#include "ace/OS_NS_stdlib.h" +#include "ace/OS_NS_unistd.h" +#include "ace/Mem_Map.h" +#include "ace/TLI_Connector.h" +#include "ace/INET_Addr.h" +#include "ace/Get_Opt.h" +#include "ace/Log_Msg.h" + +ACE_RCSID(client, remote_thr_stream_client_test, "$Id$") + +#if defined (ACE_HAS_TLI) + +// Name of the program. +static const ACE_TCHAR *program_name; + +// Port number to use. +static u_short port_number = ACE_DEFAULT_THR_PORT; + +// Name of remote host. +static const ACE_TCHAR *host_name = ACE_DEFAULT_SERVER_HOST; + +// Name of file to send. +static const ACE_TCHAR *file_name = ACE_TEXT ("./remote_data"); + +static void print_usage_and_die (void) +{ + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("usage: %s [-p portnum] [-h host_name] [-f file]\n"), + program_name)); + ACE_OS::exit (1); +} + +void +parse_args (int argc, ACE_TCHAR *argv[]) +{ + program_name = argv[0]; + ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("f:h:p:")); + + for (int c; (c = get_opt ()) != -1; ) + switch (c) + { + case 'f': + file_name = get_opt.opt_arg (); + break; + case 'h': + host_name = get_opt.opt_arg (); + break; + case 'p': + port_number = ACE_OS::atoi (get_opt.opt_arg ()); + break; + default: + print_usage_and_die (); + break; + } +} + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + parse_args (argc, argv); + void *cp; + char buf[BUFSIZ]; + ACE_TLI_Stream sc; + ACE_TLI_Connector con; + + if (con.connect (sc, + ACE_INET_Addr (port_number, + host_name)) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("open")), + -1); + + //FUZZ: disable check_for_lack_ACE_OS + ACE_Mem_Map mmap (file_name, PROT_READ); + + if (mmap (cp) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("mmap")), -1); + //FUZZ: enable check_for_lack_ACE_OS + + // Next, send the file's contents. + + if (sc.send_n (cp, mmap.size ()) == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("send_n")), + -1); + + if (sc.sndrel () == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("close_writer")), + -1); + + for (int n; (n = sc.recv (buf, sizeof buf)) > 0; ) + if (ACE_OS::write (ACE_STDOUT, buf, n) != n) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("write")), + -1); + + if (sc.close () == -1) + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("%p\n"), + ACE_TEXT ("close")), + -1); + return 0; +} +#else +int +ACE_TMAIN (int, ACE_TCHAR *[]) +{ + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("you must have TLI to run this test\n")), + 1); +} +#endif /* ACE_HAS_TLI */ |