NAME

ACE_Event_Handler - Provides an abstract interface for handling various types of I/O, timer, and signal events.

SYNOPSIS

#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), ALL_EVENTS_MASK = READ_MASK | WRITE_MASK | EXCEPT_MASK | ACCEPT_MASK | CONNECT_MASK | TIMER_MASK | QOS_MASK | GROUP_QOS_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; protected: ACE_Event_Handler (void); int priority_; ACE_Reactor *reactor_; };

DESCRIPTION

Subclasses read/write input/output on an I/O descriptor, handle an exception raised on an I/O descriptor, handle a timer's expiration, or handle a signal.

Get/set priority

Priorities run from MIN_PRIORITY (which is the "lowest priority") to MAX_PRIORITY (which is the "highest priority").
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);

Accessors to set/get the various event demultiplexors.

virtual void reactor (ACE_Reactor *reactor);

virtual ACE_Reactor *reactor (void) const;

Pointers to the various event demultiplexors.

ACE_Reactor *reactor_;

AUTHOR

Doug Schmidt

LIBRARY

ace