#include <Event_Handler.h>
Inheritance diagram for ACE_Event_Handler:
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, RWE_MASK, DONT_CALL = (1 << 9) } |
enum | { ACE_REACTOR_RESUMES_HANDLER = 0, ACE_APPLICATION_RESUMES_HANDLER } |
Public Methods | |
virtual | ~ACE_Event_Handler (void) |
Destructor is virtual to enable proper cleanup. More... | |
virtual ACE_HANDLE | get_handle (void) const |
Get the I/O handle. More... | |
virtual void | set_handle (ACE_HANDLE) |
Set the I/O handle. More... | |
virtual int | priority (void) const |
Get the priority of the Event_Handler. More... | |
virtual void | priority (int priority) |
Set the priority of the Event_Handler. More... | |
virtual int | handle_input (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
Called when input events occur (e.g., connection or data). More... | |
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). More... | |
virtual int | handle_exception (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
Called when an exceptional events occur (e.g., SIGURG). More... | |
virtual int | handle_timeout (const ACE_Time_Value ¤t_time, const void *act=0) |
Called when timer expires. More... | |
virtual int | handle_exit (ACE_Process *) |
Called when a process exits. More... | |
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 <ACE_Reactor>. The <close_mask> indicates which event has triggered the <handle_close> method callback on a particular <handle>. More... | |
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). More... | |
virtual int | resume_handler (void) |
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) |
Set the event demultiplexors. More... | |
virtual ACE_Reactor * | reactor (void) const |
Get the event demultiplexors. More... | |
Static Public Methods | |
ACE_THR_FUNC_RETURN | read_adapter (void *event_handler) |
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). More... | |
int | register_stdin_handler (ACE_Event_Handler *eh, ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr, int flags=THR_DETACHED) |
Abstracts away from the differences between Win32 and ACE with respect to reading from ACE_STDIN, which is non-<select>'able on Win32. More... | |
int | remove_stdin_handler (ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr) |
Performs the inverse of the <register_stdin_handler> method. More... | |
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. More... | |
Private Attributes | |
int | priority_ |
Priority of this Event_Handler. More... | |
ACE_Reactor * | reactor_ |
Pointer to the various event demultiplexors. More... |
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.
|
|
|
|
|
Destructor is virtual to enable proper cleanup.
|
|
Force ACE_Event_Handler to be an abstract base class.
|
|
|
Called when a <handle_*()> method returns -1 or when the <remove_handler> method is called on an <ACE_Reactor>. 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_POSIX_Asynch_Accept, ACE_POSIX_Asynch_Connect, ACE_Service_Manager, ACE_Svc_Handler, ACE_WIN32_Asynch_Connect, ACE_WIN32_Proactor, ACE_Acceptor< SVC_HANDLER, ACE_PEER_ACCEPTOR_2 >, ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >, and ACE_Svc_Handler< ACE_PEER_STREAM_2, ACE_SYNCH_USE >. |
|
Called when an exceptional events occur (e.g., SIGURG).
Reimplemented in ACE_Connector, ACE_POSIX_Asynch_Connect, ACE_WIN32_Asynch_Connect, and ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >. |
|
Called when a process exits.
|
|
|
|
Called when input events occur (e.g., connection or data).
Reimplemented in ACE_Acceptor, ACE_Oneshot_Acceptor, ACE_Connector, ACE_POSIX_Asynch_Accept, ACE_POSIX_Asynch_Connect, ACE_Select_Reactor_Notify, ACE_Service_Manager, ACE_WIN32_Asynch_Connect, ACE_Acceptor< SVC_HANDLER, ACE_PEER_ACCEPTOR_2 >, and ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >. |
|
Called when output events are possible (e.g., when flow control abates or non-blocking connection completes).
Reimplemented in ACE_Connector, ACE_POSIX_Asynch_Connect, ACE_WIN32_Asynch_Connect, and ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >. |
|
|
|
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. |
|
Called when timer expires. <current_time> represents the current time that the <Event_Handler> was selected for timeout dispatching and <act> 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, ACE_Buffered_Svc_Handler, ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >, and ACE_Svc_Handler< ACE_PEER_STREAM_2, ACE_SYNCH_USE >. |
|
Set the priority of the Event_Handler.
|
|
Get the priority of the Event_Handler.
|
|
Get the event demultiplexors.
|
|
Set the event demultiplexors.
|
|
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 <ACE_Event_Handler>. If the <get_handle> method of this event handler returns <ACE_INVALID_HANDLE> we default to reading from ACE_STDIN. |
|
Abstracts away from the differences between Win32 and ACE with respect to reading from ACE_STDIN, which is non-<select>'able on Win32.
|
|
Performs the inverse of the <register_stdin_handler> method.
|
|
|
|
Set the I/O handle.
Reimplemented in ACE_POSIX_Asynch_Accept, ACE_POSIX_Asynch_Connect, ACE_Svc_Handler, ACE_WIN32_Asynch_Connect, and ACE_Svc_Handler< ACE_PEER_STREAM_2, ACE_SYNCH_USE >. |
|
Priority of this Event_Handler.
|
|
Pointer to the various event demultiplexors.
Reimplemented in ACE_Asynch_Pseudo_Task, and ACE_Name_Proxy. |