diff options
Diffstat (limited to 'ACE/examples/Connection/misc/Connection_Handler.h')
-rw-r--r-- | ACE/examples/Connection/misc/Connection_Handler.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/ACE/examples/Connection/misc/Connection_Handler.h b/ACE/examples/Connection/misc/Connection_Handler.h new file mode 100644 index 00000000000..2e22ac8dc11 --- /dev/null +++ b/ACE/examples/Connection/misc/Connection_Handler.h @@ -0,0 +1,44 @@ +/* -*- C++ -*- */ + +// $Id$ + +#ifndef ACE_CONNECTION_HANDLER_H +#define ACE_CONNECTION_HANDLER_H + +#include "ace/SOCK_Stream.h" +#include "ace/Svc_Handler.h" + +class Connection_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> +{ +public: + virtual int open (void *); + // Initialize the <Connection_Handler> and make it an Active Object. + + virtual int close (u_long); + // Terminate the <Connection_Handler>. + + virtual int svc (void); + // Run the <Connection_Handler>'s main event loop. + +protected: + virtual int handle_close (ACE_HANDLE, + ACE_Reactor_Mask); + // Signal the Active Object to stop when called. + + virtual int handle_input (ACE_HANDLE); + // Handle input from the client. + + virtual int handle_timeout (const ACE_Time_Value &tv, + const void *arg); + // Handle timeouts. + + virtual int handle_signal (int signum, + siginfo_t *, + ucontext_t *); + // Handle timeouts. + + sig_atomic_t finished_; + // Keeps track of whether we're done. +}; + +#endif /* ACE_CONNECTION_HANDLER_H */ |