diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-01-01 08:00:34 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-01-01 08:00:34 +0000 |
commit | d9661aebab28abc0ec4fb1e716170d347d56c168 (patch) | |
tree | ecb671ab4b8e299bf5cbb8b2dfeed8a49b65fc06 /examples/ASX/Event_Server/Transceiver/transceiver.cpp | |
parent | ea0d28240863caf437a18071bfd03e7b146c5ade (diff) | |
download | ATCD-unlabeled-4.3.2.tar.gz |
This commit was manufactured by cvs2svn to create branchunlabeled-4.3.2
'unlabeled-4.3.2'.
Diffstat (limited to 'examples/ASX/Event_Server/Transceiver/transceiver.cpp')
-rw-r--r-- | examples/ASX/Event_Server/Transceiver/transceiver.cpp | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/examples/ASX/Event_Server/Transceiver/transceiver.cpp b/examples/ASX/Event_Server/Transceiver/transceiver.cpp deleted file mode 100644 index 37335b8209f..00000000000 --- a/examples/ASX/Event_Server/Transceiver/transceiver.cpp +++ /dev/null @@ -1,187 +0,0 @@ -// Test program for the event transceiver. This program can play the -// $Id$ - -// role of either Consumer or Supplier. You can terminate this -// program by typing ^C.... - - -#include "ace/Service_Config.h" -#include "ace/Connector.h" -#include "ace/SOCK_Connector.h" -#include "ace/Get_Opt.h" - -#if defined (ACE_HAS_THREADS) - -class Event_Transceiver : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> - // = TITLE - // Generate and receives messages from the event server. - // - // = DESCRIPTION - // This class is both a consumer and supplier of events, i.e., - // it is a ``transceiver.'' -{ -public: - Event_Transceiver (void); - - // = Svc_Handler hook called by the <ACE_Connector>. - virtual int open (void *); - // Initialize the transceiver when we are connected. - - // = Demultplexing hooks from the <ACE_Reactor>. - virtual int handle_input (ACE_HANDLE); - // Receive data from STDIN or socket. - - virtual int handle_signal (int signum, siginfo_t *, ucontext_t *); - // Close down via SIGINT. - -private: - int receiver (void); - // Reads data from socket and writes to ACE_STDOUT. - - int forwarder (void); - // Writes data from ACE_STDIN to socket. -}; - -// Close down via SIGINT. - -int -Event_Transceiver::handle_signal (int signum, - siginfo_t *, - ucontext_t *) -{ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) received signal %S\n", signum)); - - ACE_Service_Config::end_reactor_event_loop (); - return 0; -} - -Event_Transceiver::Event_Transceiver (void) -{ - ACE_Sig_Set sig_set; - - sig_set.sig_add (SIGINT); - sig_set.sig_add (SIGQUIT); - - if (ACE_Service_Config::reactor ()->register_handler - (sig_set, this) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "register_handler")); -} - -int -Event_Transceiver::open (void *) -{ - if (ACE_Service_Config::reactor ()->register_handler - (this->peer ().get_handle (), - this, - ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "register_handler"), -1); - else if (ACE::register_stdin_handler (this, - ACE_Service_Config::reactor (), - ACE_Service_Config::thr_mgr ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "register_stdin_handler"), -1); - return 0; -} - -int -Event_Transceiver::handle_input (ACE_HANDLE handle) -{ - if (handle == ACE_STDIN) - return this->forwarder (); - else - return this->receiver (); -} - - -int -Event_Transceiver::forwarder (void) -{ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) entering transceiver forwarder\n")); - - char buf[BUFSIZ]; - ssize_t n = ACE_OS::read (ACE_STDIN, buf, sizeof buf); - int result = 0; - - if (n <= 0 || this->peer ().send_n (buf, n) != n) - result = -1; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) leaving transceiver forwarder\n")); - return result; -} - -int -Event_Transceiver::receiver (void) -{ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) entering transceiver receiver\n")); - - char buf[BUFSIZ]; - - ssize_t n = this->peer ().recv (buf, sizeof buf); - int result = 0; - - if (n <= 0 || ACE_OS::write (ACE_STDOUT, buf, n) != n) - result = -1; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) leaving transceiver receiver\n")); - return result; -} - -// Port number of event server. -static u_short port_number; - -// Name of event server. -static char *host_name; - -// Handle the command-line arguments. - -static void -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opt (argc, argv, "h:p:"); - - port_number = ACE_DEFAULT_SERVER_PORT; - host_name = ACE_DEFAULT_SERVER_HOST; - - for (int c; (c = get_opt ()) != -1; ) - switch (c) - { - case 'h': - host_name = get_opt.optarg; - break; - case 'p': - port_number = ACE_OS::atoi (get_opt.optarg); - break; - default: - ACE_ERROR ((LM_ERROR, - "usage: %n [-p portnum] [-h host_name]\n%a", 1)); - /* NOTREACHED */ - break; - } -} - -int -main (int argc, char *argv[]) -{ - ACE_Service_Config daemon (argv[0]); - - parse_args (argc, argv); - - // Establish the connection. - ACE_Connector<Event_Transceiver, ACE_SOCK_CONNECTOR> connector; - Event_Transceiver transceiver; - - if (connector.connect (&transceiver, ACE_INET_Addr (port_number, host_name)) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", host_name), 1); - - // Run event loop until either the event server shuts down or we get - // a SIGINT. - ACE_Service_Config::run_reactor_event_loop (); - return 0; -} -#else -int -main (void) -{ - ACE_ERROR ((LM_ERROR, "test not defined for this platform\n")); - return 0; -} -#endif /* ACE_HAS_THREADS */ |