diff options
Diffstat (limited to 'examples/Reactor/Dgram/Dgram.cpp')
-rw-r--r-- | examples/Reactor/Dgram/Dgram.cpp | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/examples/Reactor/Dgram/Dgram.cpp b/examples/Reactor/Dgram/Dgram.cpp deleted file mode 100644 index c418c3b79d2..00000000000 --- a/examples/Reactor/Dgram/Dgram.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// Exercise the ACE_SOCK_Dgram wrapper along with the ACE_Reactor. -// $Id$ - -// Typical invocation sequence is: -// -// % Dgram 10000 localhost 10001 & -// % Dgram 10001 localhost 10000 -// -// This will start two interacting copies of the Dgram -// application. - -#include "ace/Reactor.h" -#include "ace/SOCK_Dgram.h" -#include "ace/INET_Addr.h" - -class AAL_CP : public ACE_Event_Handler, public ACE_SOCK_Dgram -{ -public: - AAL_CP (const ACE_INET_Addr &local_addr); - - virtual ACE_HANDLE get_handle (void) const; - - virtual int handle_input (ACE_HANDLE handle); - - virtual int handle_timeout (const ACE_Time_Value & tv, - const void *arg = 0); -}; - -AAL_CP::AAL_CP (const ACE_INET_Addr &local_addr) - : ACE_SOCK_Dgram (local_addr) -{ -} - -ACE_HANDLE -AAL_CP::get_handle (void) const -{ - return ACE_SOCK_Dgram::get_handle (); -} - -int -AAL_CP::handle_input (ACE_HANDLE) -{ - char buf[BUFSIZ]; - int n; - ACE_INET_Addr from_addr; - - ACE_DEBUG ((LM_DEBUG, "Activity occurred on handle %d!\n", - ACE_SOCK_Dgram::get_handle ())); - if ((n = ACE_SOCK_Dgram::recv (buf, sizeof buf, from_addr)) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "handle_input")); - else - ACE_DEBUG ((LM_DEBUG, "got buf = %s\n", buf)); - - return 0; -} - -int -AAL_CP::handle_timeout (const ACE_Time_Value &, const void *) -{ - ACE_DEBUG ((LM_DEBUG, "timed out for aa1\n")); - return 0; -} - -int -main (int argc, char *argv[]) -{ - // Estabish call backs, and socket names. - if (argc != 4) - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s localport remotehost remoteport\n", - argv[0]), -1); - - ACE_Reactor reactor; - char buf[128]; - u_short localport = ACE_OS::atoi (argv[1]); - u_short remoteport = ACE_OS::atoi (argv[3]); - char *remotehost = argv[2]; - - ACE_INET_Addr remote_addr (remoteport, remotehost); - ACE_INET_Addr local_addr (localport); - - AAL_CP aal (local_addr); - - if (localport == 10000) // HACK - { - ACE_OS::memcpy (buf, "Data to transmit", sizeof buf); - ACE_DEBUG ((LM_DEBUG, "sending data\n")); - - for (size_t i = 0; i < 20; i++) - { - aal.send (buf, sizeof buf, remote_addr); - ACE_DEBUG ((LM_DEBUG, ".\n")); - ACE_OS::sleep (1); - } - } - - // Read data from other side. - if (reactor.register_handler (&aal, ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "ACE_Reactor::register_handler"), -1); - - if (reactor.schedule_timer (&aal, 0, - ACE_Time_Value (1, 0), - ACE_Time_Value (0, 3500000)) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "ACE_Reactor::schedule_timer"), -1); - - ACE_OS::memcpy (buf, "Data to transmit", sizeof buf); - - for (;;) - { - // Wait at most two seconds. - ACE_Time_Value tv (2, 0); - - reactor.handle_events (tv); - - ACE_DEBUG ((LM_DEBUG, "return from handle events\n")); - aal.send (buf, sizeof buf, remote_addr); - ACE_DEBUG ((LM_DEBUG, ".\n")); - } - - return 0; -} |