Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# ACE_Event_Handler Class Reference

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

`#include <Event_Handler.h>`

Inheritance diagram for ACE_Event_Handler

[legend]
Collaboration diagram for ACE_Event_Handler:

[legend]
List of all members.

## Public Types
enum | { LO_PRIORITY = 0, HI_PRIORITY = 10, NULL_MASK = 0, READ_MASK = (1 << 0), WRITE_MASK = (1 << 1), EXCEPT_MASK = (1 << 2), 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) }
## Public Methods
virtual | ~ACE_Event_Handler (void)
| Destructor is virtual to enable proper cleanup.
virtual ACE_HANDLE | get_handle (void) const
| Get the I/O handle. Set the I/O handle.
virtual void | set_handle (ACE_HANDLE)
virtual int | priority (void) const
| Get the priority of the Event_Handler. Set the priority of the Event_Handler.
virtual void | priority (int priority)
virtual int | handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE)
| Called when input events occur (e.g., connection or data).
virtual int | handle_output (ACE_HANDLE fd = ACE_INVALID_HANDLE)
| Called when output events are possible (e.g., when flow control abates or non-blocking connection completes).
virtual int | handle_exception (ACE_HANDLE fd = ACE_INVALID_HANDLE)
| Called when an exceptional events occur (e.g., SIGURG).
virtual int | handle_timeout (const ACE_Time_Value &current_time, const void *act = 0)
virtual int | handle_exit (ACE_Process *)
| Called when a process exits.
virtual int | handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask)
| Called when a <handle_*()> method returns -1 or when the <remove_handler> method is called on an . The <close_mask> indicates which event has triggered the <handle_close> method callback on a particular <handle>.
virtual int | handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0)
| Called when object is signaled by OS (either via UNIX signals or when a Win32 object becomes signaled).
virtual int | resume_handler (void)
| Called to figure out whether the handler needs to resumed by the reactor or the application can take care of it. The default value of 0 would be returned which would allow the reactor to take care of resumption of the handler. The application can return a value more than zero and decide to resume the handler themseleves.
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 Public Methods
void* | read_adapter (void *event_handler)
int | register_stdin_handler (ACE_Event_Handler *eh, ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr, int flags = THR_DETACHED)
int | remove_stdin_handler (ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr)
| Performs the inverse of the <register_stdin_handler> method.
## Protected Methods
| ACE_Event_Handler (ACE_Reactor * = 0, int priority = ACE_Event_Handler::LO_PRIORITY)
| Force ACE_Event_Handler to be an abstract base class.
## Private Attributes
int | priority_
| Priority of this Event_Handler.
ACE_Reactor* | reactor_

## Detailed Description

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

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.

## Member Enumeration Documentation

anonymous enum

  | Enumeration values:
  LO_PRIORITY |
  HI_PRIORITY |
  NULL_MASK |
  READ_MASK |
  WRITE_MASK |
  EXCEPT_MASK |
  ACCEPT_MASK |
  CONNECT_MASK |
  TIMER_MASK |
  QOS_MASK |
  GROUP_QOS_MASK |
  SIGNAL_MASK |
  ALL_EVENTS_MASK |
  RWE_MASK |
  DONT_CALL |

## Constructor & Destructor Documentation

ACE_Event_Handler::~ACE_Event_Handler ( | void )`[virtual]`

| Destructor is virtual to enable proper cleanup.

ACE_Event_Handler::ACE_Event_Handler ( | ACE_Reactor * r = 0,
| int priority = ACE_Event_Handler::LO_PRIORITY )`[inline, protected]`

| Force ACE_Event_Handler to be an abstract base class.

## Member Function Documentation

ACE_HANDLE ACE_Event_Handler::get_handle ( | void ) const`[virtual]`

| Get the I/O handle. Set the I/O handle. Reimplemented in ACE_Acceptor, ACE_Strategy_Acceptor, ACE_Oneshot_Acceptor, ACE_Name_Proxy, ACE_POSIX_Proactor, ACE_Proactor_Impl, ACE_Service_Manager, ACE_Svc_Handler, ACE_WFMO_Reactor_Notify, and ACE_WIN32_Proactor.

int ACE_Event_Handler::handle_close ( | ACE_HANDLE handle,
| ACE_Reactor_Mask close_mask )`[virtual]`

| Called when a <handle_*()> method returns -1 or when the <remove_handler> method is called on an . The <close_mask> indicates which event has triggered the <handle_close> method callback on a particular <handle>. Reimplemented in ACE_Acceptor, ACE_Strategy_Acceptor, ACE_Oneshot_Acceptor, ACE_Connector, ACE_Service_Manager, ACE_Svc_Handler, and ACE_WIN32_Proactor.

int ACE_Event_Handler::handle_exception ( | ACE_HANDLE fd = ACE_INVALID_HANDLE )`[virtual]`

| Called when an exceptional events occur (e.g., SIGURG). Reimplemented in ACE_Connector.

int ACE_Event_Handler::handle_exit ( | ACE_Process * )`[virtual]`

| Called when a process exits.

int ACE_Event_Handler::handle_group_qos ( | ACE_HANDLE = ACE_INVALID_HANDLE )`[virtual]`

int ACE_Event_Handler::handle_input ( | ACE_HANDLE h = ACE_INVALID_HANDLE )`[virtual]`

| Called when input events occur (e.g., connection or data). Reimplemented in ACE_Acceptor, ACE_Oneshot_Acceptor, ACE_Connector, ACE_POSIX_Asynch_Accept_Handler, ACE_Select_Reactor_Notify, and ACE_Service_Manager.

int ACE_Event_Handler::handle_output ( | ACE_HANDLE handle = ACE_INVALID_HANDLE )`[virtual]`

| Called when output events are possible (e.g., when flow control abates or non-blocking connection completes). Reimplemented in ACE_Connector.

int ACE_Event_Handler::handle_qos ( | ACE_HANDLE = ACE_INVALID_HANDLE )`[virtual]`

int ACE_Event_Handler::handle_signal ( | int signum,
| siginfo_t * siginfo = 0,
| ucontext_t * ucontext = 0 )`[virtual]`

| Called when object is signaled by OS (either via UNIX signals or when a Win32 object becomes signaled). Reimplemented in ACE_Strategy_Acceptor, ACE_Shared_Memory_Pool, ACE_MMAP_Memory_Pool, ACE_Process_Manager, ACE_Service_Manager, ACE_Sig_Adapter, ACE_Test_and_Set, ACE_Async_Timer_Queue_Adapter, ACE_Wakeup_All_Threads_Handler, ACE_WFMO_Reactor_Notify, and ACE_WIN32_Proactor.

int ACE_Event_Handler::handle_timeout ( | const ACE_Time_Value & tv,
| const void * arg = 0 )`[virtual]`

| Called when timer expires. <current_time> represents the current time that the <Event_Handler> was selected for timeout dispatching and is the asynchronous completion token that was passed in when <schedule_timer> was invoked. Reimplemented in ACE_Oneshot_Acceptor, ACE_Connector, ACE_Logging_Strategy, ACE_Svc_Handler, and ACE_Buffered_Svc_Handler.

void ACE_Event_Handler::priority ( | int priority )`[virtual]`

int ACE_Event_Handler::priority ( | void ) const`[virtual]`

| Get the priority of the Event_Handler. Set the priority of the Event_Handler.

ACE_Reactor * ACE_Event_Handler::reactor ( | void ) const`[virtual]`

void ACE_Event_Handler::reactor ( | ACE_Reactor * reactor )`[virtual]`

void * ACE_Event_Handler::read_adapter ( | void * event_handler )`[static]`

| Used to read from non-socket ACE_HANDLEs in our own thread to work around Win32 limitations that don't allow us to <select> on non-sockets (such as ACE_STDIN). This is commonly used in situations where the Reactor is used to demultiplex read events on ACE_STDIN on UNIX. Note that <event_handler> must be a subclass of . If the <get_handle> method of this event handler returns we default to reading from ACE_STDIN.

int ACE_Event_Handler::register_stdin_handler ( | ACE_Event_Handler * eh,
| ACE_Reactor * reactor,
| ACE_Thread_Manager * thr_mgr,
| int flags = THR_DETACHED )`[static]`

| Abstracts away from the differences between Win32 and ACE with respect to reading from ACE_STDIN, which is non-<select>'able on Win32.

int ACE_Event_Handler::remove_stdin_handler ( | ACE_Reactor * reactor,
| ACE_Thread_Manager * thr_mgr )`[static]`

| Performs the inverse of the <register_stdin_handler> method.

int ACE_Event_Handler::resume_handler ( | void )`[virtual]`

| Called to figure out whether the handler needs to resumed by the reactor or the application can take care of it. The default value of 0 would be returned which would allow the reactor to take care of resumption of the handler. The application can return a value more than zero and decide to resume the handler themseleves.

void ACE_Event_Handler::set_handle ( | ACE_HANDLE h )`[virtual]`

| Reimplemented in ACE_Svc_Handler.

## Member Data Documentation

int ACE_Event_Handler::priority_`[private]`

| Priority of this Event_Handler.

ACE_Reactor * ACE_Event_Handler::reactor_`[private]`

| Reimplemented in ACE_Name_Proxy, and ACE_POSIX_Asynch_Accept_Handler.

The documentation for this class was generated from the following files:

- Event_Handler.h
- Event_Handler.cpp