ACE
6.3.1
|
Event handler used for unblocking the ACE_Dev_Poll_Reactor from its event loop. More...
#include <Dev_Poll_Reactor.h>
Public Member Functions | |
ACE_Dev_Poll_Reactor_Notify (void) | |
Constructor. More... | |
![]() | |
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 |
virtual void | priority (int priority) |
Set the priority of the Event_Handler. More... | |
virtual int | handle_output (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
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) |
virtual int | handle_exit (ACE_Process *) |
Called when a process exits. More... | |
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 | 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... | |
virtual ACE_Reactor_Timer_Interface * | reactor_timer_interface (void) const |
Get only the reactor's timer related interface. More... | |
virtual Reference_Count | add_reference (void) |
Increment reference count on the handler. More... | |
virtual Reference_Count | remove_reference (void) |
Decrement reference count on the handler. More... | |
Reference_Counting_Policy & | reference_counting_policy (void) |
Current Reference_Counting_Policy. More... | |
Initialization and Termination Methods | |
Methods called when initializing and terminating this event handler. | |
ACE_Dev_Poll_Reactor * | dp_reactor_ |
ACE_Pipe | notification_pipe_ |
int | max_notify_iterations_ |
virtual int | open (ACE_Reactor_Impl *, ACE_Timer_Queue *timer_queue=0, int disable_notify=0) |
virtual int | close (void) |
virtual int | notify (ACE_Event_Handler *eh=0, ACE_Reactor_Mask mask=ACE_Event_Handler::EXCEPT_MASK, ACE_Time_Value *timeout=0) |
virtual int | dispatch_notifications (int &number_of_active_handles, ACE_Handle_Set &rd_mask) |
virtual ACE_HANDLE | notify_handle (void) |
virtual int | is_dispatchable (ACE_Notification_Buffer &buffer) |
Verify whether the buffer has dispatchable info or not. More... | |
virtual int | dispatch_notify (ACE_Notification_Buffer &buffer) |
virtual int | read_notify_pipe (ACE_HANDLE handle, ACE_Notification_Buffer &buffer) |
virtual int | handle_input (ACE_HANDLE handle) |
virtual void | max_notify_iterations (int) |
virtual int | max_notify_iterations (void) |
virtual int | purge_pending_notifications (ACE_Event_Handler *=0, ACE_Reactor_Mask=ACE_Event_Handler::ALL_EVENTS_MASK) |
virtual void | dump (void) const |
Dump the state of an object. More... | |
int | dequeue_one (ACE_Notification_Buffer &nb) |
Additional Inherited Members | |
![]() | |
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_EVENT_HANDLER_NOT_RESUMED = -1, ACE_REACTOR_RESUMES_HANDLER = 0, ACE_APPLICATION_RESUMES_HANDLER } |
typedef long | Reference_Count |
Reference count type. More... | |
![]() | |
static ACE_THR_FUNC_RETURN | 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) |
Performs the inverse of the register_stdin_handler() method. More... | |
![]() | |
typedef ACE_Atomic_Op < ACE_SYNCH_MUTEX, Reference_Count > | Atomic_Reference_Count |
Typedef for implementation of reference counting. More... | |
![]() | |
ACE_Event_Handler (ACE_Reactor *=0, int priority=ACE_Event_Handler::LO_PRIORITY) | |
Force ACE_Event_Handler to be an abstract base class. More... | |
![]() | |
Atomic_Reference_Count | reference_count_ |
Reference count. More... | |
Event handler used for unblocking the ACE_Dev_Poll_Reactor from its event loop.
This event handler is used internally by the ACE_Dev_Poll_Reactor as a means to allow a thread other then the one running the event loop to unblock the event loop.
ACE_Dev_Poll_Reactor_Notify::ACE_Dev_Poll_Reactor_Notify | ( | void | ) |
Constructor.
|
virtual |
Keep a back pointer to the ACE_Dev_Poll_Reactor. If this value if NULL then the ACE_Dev_Poll_Reactor has been initialized with disable_notify_pipe.
Implements ACE_Reactor_Notify.
int ACE_Dev_Poll_Reactor_Notify::dequeue_one | ( | ACE_Notification_Buffer & | nb | ) |
Method called by ACE_Dev_Poll_Reactor to obtain one notification. THIS METHOD MUST BE CALLED WITH THE REACTOR TOKEN HELD!
|
virtual |
Unimplemented method required by pure virtual method in abstract base class. This method's interface is not very compatibile with this Reactor's design. It's not clear why this method is pure virtual either.
Implements ACE_Reactor_Notify.
|
virtual |
Handle one notify call represented in buffer. This could be because of a thread trying to unblock the Reactor_Impl.
Implements ACE_Reactor_Notify.
|
virtual |
Dump the state of an object.
Implements ACE_Reactor_Notify.
|
virtual |
Called back by the ACE_Dev_Poll_Reactor when a thread wants to unblock us.
Reimplemented from ACE_Event_Handler.
|
virtual |
Verify whether the buffer has dispatchable info or not.
Implements ACE_Reactor_Notify.
|
virtual |
Set the maximum number of times that the handle_input method will iterate and dispatch the ACE_Event_Handlers that are passed in via the notify queue before breaking out of the event loop. By default, this is set to -1, which means "iterate until the queue is empty." Setting this to a value like "1 or 2" will increase "fairness" (and thus prevent starvation) at the expense of slightly higher dispatching overhead.
Implements ACE_Reactor_Notify.
|
virtual |
Get the maximum number of times that the handle_input method will iterate and dispatch the ACE_Event_Handlers that are passed in via the notify queue before breaking out of its event loop.
Implements ACE_Reactor_Notify.
|
virtual |
Called by a thread when it wants to unblock the Reactor_Impl. This wakes up the Reactor_Impl if currently blocked. Pass over both the Event_Handler and the mask to allow the caller to dictate which Event_Handler method the Reactor_Impl will invoke. The ACE_Time_Value indicates how long to block trying to notify the Reactor_Impl. If timeout == 0, the caller will block until action is possible, else will wait until the relative time specified in *timeout elapses).
Implements ACE_Reactor_Notify.
|
virtual |
Returns the ACE_HANDLE of the notify pipe on which the reactor is listening for notifications so that other threads can unblock the Reactor_Impl.
Implements ACE_Reactor_Notify.
|
virtual |
Keep a back pointer to the ACE_Dev_Poll_Reactor. If this value if NULL then the ACE_Dev_Poll_Reactor has been initialized with disable_notify_pipe.
Implements ACE_Reactor_Notify.
|
virtual |
Purge any notifications pending in this reactor for the specified ACE_Event_Handler object. Returns the number of notifications purged. Returns -1 on error.
Implements ACE_Reactor_Notify.
|
virtual |
Read one notify call on the handle into buffer. This could be because of a thread trying to unblock the Reactor_Impl.
Implements ACE_Reactor_Notify.
|
protected |
Keep a back pointer to the ACE_Dev_Poll_Reactor. If this value if NULL then the ACE_Dev_Poll_Reactor has been initialized with disable_notify_pipe.
|
protected |
Keeps track of the maximum number of times that the ACE_Dev_Poll_Reactor_Notify::handle_input method will iterate and dispatch the ACE_Event_Handlers that are passed in via the notify pipe before breaking out of its recv loop. By default, this is set to -1, which means "iterate until the pipe is empty."
|
protected |
Contains the ACE_HANDLE the ACE_Dev_Poll_Reactor is listening on, as well as the ACE_HANDLE that threads wanting the attention of the ACE_Dev_Poll_Reactor will write to.