#include <ace/Event_Handler.h>
class ACE_Event_Handler {
public:enum{ LO_PRIORITY = 0, HI_PRIORITY = 10, NULL_MASK = 0, #if defined ( ACE_USE_POLL) READ_MASK = POLLIN, WRITE_MASK = POLLOUT, EXCEPT_MASK = POLLPRI, #else READ_MASK = (1 << 0), WRITE_MASK = (1 << 1), EXCEPT_MASK = (1 << 2), #endif ACCEPT_MASK = (1 << 3), CONNECT_MASK = (1 << 4), TIMER_MASK = (1 << 5), QOS_MASK = (1 << 6), GROUP_QOS_MASK = (1 << 7), SIGNAL_MASK = (1 << 8), ALL_EVENTS_MASK = READ_MASK | WRITE_MASK | EXCEPT_MASK | ACCEPT_MASK | CONNECT_MASK | TIMER_MASK | QOS_MASK | GROUP_QOS_MASK | SIGNAL_MASK, RWE_MASK = READ_MASK | WRITE_MASK | EXCEPT_MASK, DONT_CALL = (1 << 9) };virtual ~ACE_Event_Handler (void);virtual ACE_HANDLE get_handle (void) const;virtual void set_handle (ACE_HANDLE);virtual int priority (void) const;virtual void priority (int priority);virtual int handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE);virtual int handle_output (ACE_HANDLE fd = ACE_INVALID_HANDLE);virtual int handle_exception (ACE_HANDLE fd = ACE_INVALID_HANDLE);virtual int handle_timeout ( const ACE_Time_Value &tv, const void *arg = 0 );virtual int handle_close ( ACE_HANDLE handle, ACE_Reactor_Mask close_mask );virtual int handle_signal ( int signum, siginfo_t * = 0, ucontext_t * = 0 );virtual int handle_qos (ACE_HANDLE = ACE_INVALID_HANDLE);virtual int handle_group_qos (ACE_HANDLE = ACE_INVALID_HANDLE);virtual void reactor (ACE_Reactor *reactor);virtual ACE_Reactor *reactor (void) const;static void *read_adapter (void *event_handler);static int register_stdin_handler ( ACE_Event_Handler *eh, ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr, int flags = THR_DETACHED );static int remove_stdin_handler ( ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr );protected:ACE_Event_Handler ( ACE_Reactor * = 0, int priority = ACE_Event_Handler::LO_PRIORITY );private:int priority_;ACE_Reactor *reactor_;};
virtual int priority (void) const;
virtual void priority (int priority);
virtual int handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE);
virtual int handle_output (ACE_HANDLE fd = ACE_INVALID_HANDLE);
virtual int handle_exception (ACE_HANDLE fd = ACE_INVALID_HANDLE);
virtual int handle_timeout (
const ACE_Time_Value &tv,
const void *arg = 0
);
virtual int handle_close (
ACE_HANDLE handle,
ACE_Reactor_Mask close_mask
);
virtual int handle_signal (
int signum,
siginfo_t * = 0,
ucontext_t * = 0
);
virtual int handle_qos (ACE_HANDLE = ACE_INVALID_HANDLE);
virtual int handle_group_qos (ACE_HANDLE = ACE_INVALID_HANDLE);
virtual void reactor (ACE_Reactor *reactor);
virtual ACE_Reactor *reactor (void) const;
static void *read_adapter (void *event_handler);
event_handler must be a
subclass of ACE_Event_Handler. If the get_handle method of
this event handler returns ACE_INVALID_HANDLE we default to
reading from ACE_STDIN.
static int register_stdin_handler (
ACE_Event_Handler *eh,
ACE_Reactor *reactor,
ACE_Thread_Manager *thr_mgr,
int flags = THR_DETACHED
);
static int remove_stdin_handler (
ACE_Reactor *reactor,
ACE_Thread_Manager *thr_mgr
);
register_stdin_handler method.
ACE_Reactor *reactor_;