ACE  6.3.4
Public Member Functions | Public Attributes | List of all members
ACE_Reactor_Impl Class Referenceabstract

An abstract class for implementing the Reactor Pattern. More...

#include <Reactor_Impl.h>

Inheritance diagram for ACE_Reactor_Impl:
Inheritance graph
[legend]

Public Member Functions

virtual ~ACE_Reactor_Impl (void)
 Close down and release all resources. More...
 
virtual int open (size_t size, bool restart=false, ACE_Sig_Handler *=0, ACE_Timer_Queue *=0, int disable_notify_pipe=0, ACE_Reactor_Notify *=0)=0
 Initialization. More...
 
virtual int current_info (ACE_HANDLE, size_t &)=0
 
virtual int set_sig_handler (ACE_Sig_Handler *signal_handler)=0
 Use a user specified signal handler instead. More...
 
virtual int timer_queue (ACE_Timer_Queue *tq)=0
 Set a user-specified timer queue. More...
 
virtual ACE_Timer_Queuetimer_queue (void) const =0
 Return the current ACE_Timer_Queue. More...
 
virtual int close (void)=0
 Close down and release all resources. More...
 
virtual int work_pending (const ACE_Time_Value &max_wait_time=ACE_Time_Value::zero)=0
 
virtual int handle_events (ACE_Time_Value *max_wait_time=0)=0
 
virtual int alertable_handle_events (ACE_Time_Value *max_wait_time=0)=0
 
virtual int handle_events (ACE_Time_Value &max_wait_time)=0
 
virtual int alertable_handle_events (ACE_Time_Value &max_wait_time)=0
 
virtual int deactivated (void)=0
 
virtual void deactivate (int do_stop)=0
 
virtual int register_handler (ACE_Event_Handler *event_handler, ACE_Reactor_Mask mask)=0
 
virtual int register_handler (ACE_HANDLE io_handle, ACE_Event_Handler *event_handler, ACE_Reactor_Mask mask)=0
 
virtual int register_handler (ACE_Event_Handler *event_handler, ACE_HANDLE event_handle=ACE_INVALID_HANDLE)=0
 
virtual int register_handler (ACE_HANDLE event_handle, ACE_HANDLE io_handle, ACE_Event_Handler *event_handler, ACE_Reactor_Mask mask)=0
 
virtual int register_handler (const ACE_Handle_Set &handles, ACE_Event_Handler *event_handler, ACE_Reactor_Mask mask)=0
 Register event_handler with all the handles in the <Handle_Set>. More...
 
virtual int register_handler (int signum, ACE_Event_Handler *new_sh, ACE_Sig_Action *new_disp=0, ACE_Event_Handler **old_sh=0, ACE_Sig_Action *old_disp=0)=0
 
virtual int register_handler (const ACE_Sig_Set &sigset, ACE_Event_Handler *new_sh, ACE_Sig_Action *new_disp=0)=0
 
virtual int remove_handler (ACE_Event_Handler *event_handler, ACE_Reactor_Mask mask)=0
 
virtual int remove_handler (ACE_HANDLE handle, ACE_Reactor_Mask mask)=0
 
virtual int remove_handler (const ACE_Handle_Set &handle_set, ACE_Reactor_Mask mask)=0
 
virtual int remove_handler (int signum, ACE_Sig_Action *new_disp, ACE_Sig_Action *old_disp=0, int sigkey=-1)=0
 
virtual int remove_handler (const ACE_Sig_Set &sigset)=0
 Calls <remove_handler> for every signal in sigset. More...
 
virtual int suspend_handler (ACE_Event_Handler *event_handler)=0
 
virtual int suspend_handler (ACE_HANDLE handle)=0
 Suspend handle temporarily. More...
 
virtual int suspend_handler (const ACE_Handle_Set &handles)=0
 Suspend all handles in handle set temporarily. More...
 
virtual int suspend_handlers (void)=0
 Suspend all <handles> temporarily. More...
 
virtual int resume_handler (ACE_Event_Handler *event_handler)=0
 
virtual int resume_handler (ACE_HANDLE handle)=0
 Resume handle. More...
 
virtual int resume_handler (const ACE_Handle_Set &handles)=0
 Resume all handles in handle set. More...
 
virtual int resume_handlers (void)=0
 Resume all <handles>. More...
 
virtual int resumable_handler (void)=0
 
virtual bool uses_event_associations (void)=0
 
virtual long schedule_timer (ACE_Event_Handler *event_handler, const void *arg, const ACE_Time_Value &delay, const ACE_Time_Value &interval=ACE_Time_Value::zero)=0
 
virtual int reset_timer_interval (long timer_id, const ACE_Time_Value &interval)=0
 
virtual int cancel_timer (ACE_Event_Handler *event_handler, int dont_call_handle_close=1)=0
 
virtual int cancel_timer (long timer_id, const void **arg=0, int dont_call_handle_close=1)=0
 
virtual int schedule_wakeup (ACE_Event_Handler *event_handler, ACE_Reactor_Mask masks_to_be_added)=0
 
virtual int schedule_wakeup (ACE_HANDLE handle, ACE_Reactor_Mask masks_to_be_added)=0
 
virtual int cancel_wakeup (ACE_Event_Handler *event_handler, ACE_Reactor_Mask masks_to_be_cleared)=0
 Clear masks_to_be_cleared from the event_handler's entry. More...
 
virtual int cancel_wakeup (ACE_HANDLE handle, ACE_Reactor_Mask masks_to_be_cleared)=0
 Clear masks_to_be_cleared from the handle's entry. More...
 
virtual int notify (ACE_Event_Handler *event_handler=0, ACE_Reactor_Mask mask=ACE_Event_Handler::EXCEPT_MASK, ACE_Time_Value *=0)=0
 
virtual void max_notify_iterations (int)=0
 
virtual int max_notify_iterations (void)=0
 
virtual int purge_pending_notifications (ACE_Event_Handler *=0, ACE_Reactor_Mask=ACE_Event_Handler::ALL_EVENTS_MASK)=0
 
virtual ACE_Event_Handlerfind_handler (ACE_HANDLE handle)=0
 
virtual int handler (ACE_HANDLE handle, ACE_Reactor_Mask mask, ACE_Event_Handler **event_handler=0)=0
 
virtual int handler (int signum, ACE_Event_Handler **=0)=0
 
virtual bool initialized (void)=0
 
virtual size_t size (void) const =0
 
virtual ACE_Locklock (void)=0
 Returns a reference to the Reactor's internal lock. More...
 
virtual void wakeup_all_threads (void)=0
 Wake up all threads in waiting in the event loop. More...
 
virtual int owner (ACE_thread_t new_owner, ACE_thread_t *old_owner=0)=0
 Transfers ownership of Reactor_Impl to the new_owner. More...
 
virtual int owner (ACE_thread_t *owner)=0
 Return the ID of the "owner" thread. More...
 
virtual bool restart (void)=0
 Get the existing restart value. More...
 
virtual bool restart (bool r)=0
 Set a new value for restart and return the original value. More...
 
virtual void requeue_position (int)=0
 Set position of the owner thread. More...
 
virtual int requeue_position (void)=0
 Get position of the owner thread. More...
 
virtual int mask_ops (ACE_Event_Handler *event_handler, ACE_Reactor_Mask mask, int ops)=0
 
virtual int mask_ops (ACE_HANDLE handle, ACE_Reactor_Mask mask, int ops)=0
 
virtual int ready_ops (ACE_Event_Handler *event_handler, ACE_Reactor_Mask mask, int ops)=0
 
virtual int ready_ops (ACE_HANDLE handle, ACE_Reactor_Mask, int ops)=0
 GET/SET/ADD/CLR the ready "bit" bound with the handle and mask. More...
 
virtual void dump (void) const =0
 Dump the state of an object. More...
 

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 

Detailed Description

An abstract class for implementing the Reactor Pattern.

Constructor & Destructor Documentation

ACE_Reactor_Impl::~ACE_Reactor_Impl ( void  )
virtual

Close down and release all resources.

Member Function Documentation

virtual int ACE_Reactor_Impl::alertable_handle_events ( ACE_Time_Value max_wait_time = 0)
pure virtual
virtual int ACE_Reactor_Impl::alertable_handle_events ( ACE_Time_Value max_wait_time)
pure virtual
virtual int ACE_Reactor_Impl::cancel_timer ( ACE_Event_Handler event_handler,
int  dont_call_handle_close = 1 
)
pure virtual

Cancel all Event_Handlers that match the address of event_handler. Returns number of handlers cancelled.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::cancel_timer ( long  timer_id,
const void **  arg = 0,
int  dont_call_handle_close = 1 
)
pure virtual

Cancel the single Event_Handler that matches the timer_id value (which was returned from the schedule method). If arg is non-NULL then it will be set to point to the ``magic cookie'' argument passed in when the Event_Handler was registered. This makes it possible to free up the memory and avoid memory leaks. Returns 1 if cancellation succeeded and 0 if the timer_id wasn't found.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::cancel_wakeup ( ACE_Event_Handler event_handler,
ACE_Reactor_Mask  masks_to_be_cleared 
)
pure virtual
virtual int ACE_Reactor_Impl::cancel_wakeup ( ACE_HANDLE  handle,
ACE_Reactor_Mask  masks_to_be_cleared 
)
pure virtual
virtual int ACE_Reactor_Impl::close ( void  )
pure virtual
virtual int ACE_Reactor_Impl::current_info ( ACE_HANDLE  ,
size_t &   
)
pure virtual

Returns 0, if the size of the current message has been put in size Returns -1, if not. ACE_HANDLE allows the reactor to check if the caller is valid.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual void ACE_Reactor_Impl::deactivate ( int  do_stop)
pure virtual

Control whether the Reactor will handle any more incoming events or not. If do_stop == 1, the Reactor will be disabled. By default, a reactor is in active state and can be deactivated/reactived as wish.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::deactivated ( void  )
pure virtual

Return the status of Reactor. If this function returns 0, the reactor is actively handling events. If it returns non-zero, <handling_events> and <handle_alertable_events> return -1 immediately.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual void ACE_Reactor_Impl::dump ( void  ) const
pure virtual
virtual ACE_Event_Handler* ACE_Reactor_Impl::find_handler ( ACE_HANDLE  handle)
pure virtual

Return the Event_Handler associated with handle. Return 0 if handle is not registered.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::handle_events ( ACE_Time_Value max_wait_time = 0)
pure virtual

This event loop driver blocks for up to max_wait_time before returning. It will return earlier if events occur. Note that max_wait_time can be 0, in which case this method blocks indefinitely until events occur.

max_wait_time is decremented to reflect how much time this call took. For instance, if a time value of 3 seconds is passed to handle_events and an event occurs after 2 seconds, max_wait_time will equal 1 second. This can be used if an application wishes to handle events for some fixed amount of time.

Returns the total number of ACE_Event_Handlers that were dispatched, 0 if the max_wait_time elapsed without dispatching any handlers, or -1 if an error occurs.

The only difference between <alertable_handle_events> and <handle_events> is that in the alertable case, the eventloop will return when the system queues an I/O completion routine or an Asynchronous Procedure Call.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_TP_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, ACE_Select_Reactor_T< ACE_Select_Reactor_Token >, and ACE_Msg_WFMO_Reactor.

virtual int ACE_Reactor_Impl::handle_events ( ACE_Time_Value max_wait_time)
pure virtual

This method is just like the one above, except the max_wait_time value is a reference and can therefore never be NULL.

The only difference between <alertable_handle_events> and <handle_events> is that in the alertable case, the eventloop will return when the system queues an I/O completion routine or an Asynchronous Procedure Call.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_TP_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, ACE_Select_Reactor_T< ACE_Select_Reactor_Token >, and ACE_Msg_WFMO_Reactor.

virtual int ACE_Reactor_Impl::handler ( ACE_HANDLE  handle,
ACE_Reactor_Mask  mask,
ACE_Event_Handler **  event_handler = 0 
)
pure virtual

Check to see if handle is associated with a valid Event_Handler bound to mask. Return the event_handler associated with this handler if event_handler != 0.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::handler ( int  signum,
ACE_Event_Handler **  = 0 
)
pure virtual

Check to see if signum is associated with a valid Event_Handler bound to a signal. Return the event_handler associated with this handler if event_handler != 0.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual bool ACE_Reactor_Impl::initialized ( void  )
pure virtual

Returns true if Reactor has been successfully initialized, else false.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual ACE_Lock& ACE_Reactor_Impl::lock ( void  )
pure virtual
virtual int ACE_Reactor_Impl::mask_ops ( ACE_Event_Handler event_handler,
ACE_Reactor_Mask  mask,
int  ops 
)
pure virtual

GET/SET/ADD/CLR the dispatch mask "bit" bound with the event_handler and mask.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::mask_ops ( ACE_HANDLE  handle,
ACE_Reactor_Mask  mask,
int  ops 
)
pure virtual

GET/SET/ADD/CLR the dispatch MASK "bit" bound with the handle and mask.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual void ACE_Reactor_Impl::max_notify_iterations ( int  )
pure virtual

Set the maximum number of times that ACE_Reactor_Impl will iterate and dispatch the ACE_Event_Handlers that are passed in via the notify queue before breaking out of its <ACE_Message_Queue::dequeue> 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.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::max_notify_iterations ( void  )
pure virtual

Get the maximum number of times that the ACE_Reactor_Impl will iterate and dispatch the ACE_Event_Handlers that are passed in via the notify queue before breaking out of its <ACE_Message_Queue::dequeue> loop.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::notify ( ACE_Event_Handler event_handler = 0,
ACE_Reactor_Mask  mask = ACE_Event_Handler::EXCEPT_MASK,
ACE_Time_Value = 0 
)
pure virtual

Notify event_handler of mask event. The ACE_Time_Value indicates how long to blocking trying to notify. If timeout == 0, the caller will block until action is possible, else will wait until the relative time specified in timeout elapses).

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::open ( size_t  size,
bool  restart = false,
ACE_Sig_Handler = 0,
ACE_Timer_Queue = 0,
int  disable_notify_pipe = 0,
ACE_Reactor_Notify = 0 
)
pure virtual
virtual int ACE_Reactor_Impl::owner ( ACE_thread_t  new_owner,
ACE_thread_t old_owner = 0 
)
pure virtual
virtual int ACE_Reactor_Impl::owner ( ACE_thread_t owner)
pure virtual
virtual int ACE_Reactor_Impl::purge_pending_notifications ( ACE_Event_Handler = 0,
ACE_Reactor_Mask  = ACE_Event_Handler::ALL_EVENTS_MASK 
)
pure 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.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, and ACE_Select_Reactor_Impl.

virtual int ACE_Reactor_Impl::ready_ops ( ACE_Event_Handler event_handler,
ACE_Reactor_Mask  mask,
int  ops 
)
pure virtual

GET/SET/ADD/CLR the ready "bit" bound with the event_handler and mask.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::ready_ops ( ACE_HANDLE  handle,
ACE_Reactor_Mask  ,
int  ops 
)
pure virtual

GET/SET/ADD/CLR the ready "bit" bound with the handle and mask.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::register_handler ( ACE_Event_Handler event_handler,
ACE_Reactor_Mask  mask 
)
pure virtual

Register event_handler with mask. The I/O handle will always come from <get_handle> on the event_handler.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::register_handler ( ACE_HANDLE  io_handle,
ACE_Event_Handler event_handler,
ACE_Reactor_Mask  mask 
)
pure virtual

Register event_handler with mask. The I/O handle is provided through the <io_handle> parameter.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::register_handler ( ACE_Event_Handler event_handler,
ACE_HANDLE  event_handle = ACE_INVALID_HANDLE 
)
pure virtual

Register an event_handler that will be notified when <event_handle> is signaled. Since no event mask is passed through this interface, it is assumed that the <event_handle> being passed in is an event handle and not an I/O handle.

Implemented in ACE_WFMO_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::register_handler ( ACE_HANDLE  event_handle,
ACE_HANDLE  io_handle,
ACE_Event_Handler event_handler,
ACE_Reactor_Mask  mask 
)
pure virtual

Register an event_handler that will be notified when <event_handle> is signaled. mask specifies the network events that the event_handler is interested in.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::register_handler ( const ACE_Handle_Set handles,
ACE_Event_Handler event_handler,
ACE_Reactor_Mask  mask 
)
pure virtual

Register event_handler with all the handles in the <Handle_Set>.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::register_handler ( int  signum,
ACE_Event_Handler new_sh,
ACE_Sig_Action new_disp = 0,
ACE_Event_Handler **  old_sh = 0,
ACE_Sig_Action old_disp = 0 
)
pure virtual

Register new_sh to handle the signal signum using the new_disp. Returns the old_sh that was previously registered (if any), along with the old_disp of the signal handler.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::register_handler ( const ACE_Sig_Set sigset,
ACE_Event_Handler new_sh,
ACE_Sig_Action new_disp = 0 
)
pure virtual

Registers new_sh to handle a set of signals sigset using the new_disp.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::remove_handler ( ACE_Event_Handler event_handler,
ACE_Reactor_Mask  mask 
)
pure virtual

Removes event_handler. Note that the I/O handle will be obtained using <get_handle> method of event_handler . If mask == ACE_Event_Handler::DONT_CALL then the <handle_close> method of the event_handler is not invoked.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::remove_handler ( ACE_HANDLE  handle,
ACE_Reactor_Mask  mask 
)
pure virtual

Removes handle. If mask == ACE_Event_Handler::DONT_CALL then the <handle_close> method of the associated <event_handler> is not invoked.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::remove_handler ( const ACE_Handle_Set handle_set,
ACE_Reactor_Mask  mask 
)
pure virtual

Removes all handles in handle_set. If mask == ACE_Event_Handler::DONT_CALL then the <handle_close> method of the associated <event_handler>s is not invoked.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::remove_handler ( int  signum,
ACE_Sig_Action new_disp,
ACE_Sig_Action old_disp = 0,
int  sigkey = -1 
)
pure virtual

Remove the ACE_Event_Handler currently associated with signum. Install the new disposition (if given) and return the previous disposition (if desired by the caller). Returns 0 on success and -1 if signum is invalid.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::remove_handler ( const ACE_Sig_Set sigset)
pure virtual
virtual void ACE_Reactor_Impl::requeue_position ( int  )
pure virtual
virtual int ACE_Reactor_Impl::requeue_position ( void  )
pure virtual
virtual int ACE_Reactor_Impl::reset_timer_interval ( long  timer_id,
const ACE_Time_Value interval 
)
pure virtual

Resets the interval of the timer represented by timer_id to interval, which is specified in relative time to the current <gettimeofday>. If interval is equal to ACE_Time_Value::zero, the timer will become a non-rescheduling timer. Returns 0 if successful, -1 if not.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual bool ACE_Reactor_Impl::restart ( void  )
pure virtual
virtual bool ACE_Reactor_Impl::restart ( bool  r)
pure virtual
virtual int ACE_Reactor_Impl::resumable_handler ( void  )
pure virtual

Does the reactor allow the application to resume the handle on its own ie. can it pass on the control of handle resumption to the application

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_Impl, and ACE_TP_Reactor.

virtual int ACE_Reactor_Impl::resume_handler ( ACE_Event_Handler event_handler)
pure virtual
virtual int ACE_Reactor_Impl::resume_handler ( ACE_HANDLE  handle)
pure virtual
virtual int ACE_Reactor_Impl::resume_handler ( const ACE_Handle_Set handles)
pure virtual
virtual int ACE_Reactor_Impl::resume_handlers ( void  )
pure virtual
virtual long ACE_Reactor_Impl::schedule_timer ( ACE_Event_Handler event_handler,
const void *  arg,
const ACE_Time_Value delay,
const ACE_Time_Value interval = ACE_Time_Value::zero 
)
pure virtual

Schedule an ACE_Event_Handler that will expire after an amount of time. The return value of this method, a timer_id value, uniquely identifies the event_handler in the ACE_Reactor's internal list of timers. This timer_id value can be used to cancel the timer with the cancel_timer() call.

See also
cancel_timer()
reset_timer_interval()
Parameters
event_handlerevent handler to schedule on reactor
argargument passed to the handle_timeout() method of event_handler
delaytime interval after which the timer will expire
intervaltime interval after which the timer will be automatically rescheduled
Returns
-1 on failure, a timer_id value on success

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::schedule_wakeup ( ACE_Event_Handler event_handler,
ACE_Reactor_Mask  masks_to_be_added 
)
pure virtual

Add masks_to_be_added to the event_handler's entry. event_handler must already have been registered.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::schedule_wakeup ( ACE_HANDLE  handle,
ACE_Reactor_Mask  masks_to_be_added 
)
pure virtual

Add masks_to_be_added to the handle's entry. <event_handler> associated with handle must already have been registered.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::set_sig_handler ( ACE_Sig_Handler signal_handler)
pure virtual
virtual size_t ACE_Reactor_Impl::size ( void  ) const
pure virtual

Returns the current size of the Reactor's internal descriptor table.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual int ACE_Reactor_Impl::suspend_handler ( ACE_Event_Handler event_handler)
pure virtual
virtual int ACE_Reactor_Impl::suspend_handler ( ACE_HANDLE  handle)
pure virtual
virtual int ACE_Reactor_Impl::suspend_handler ( const ACE_Handle_Set handles)
pure virtual
virtual int ACE_Reactor_Impl::suspend_handlers ( void  )
pure virtual
virtual int ACE_Reactor_Impl::timer_queue ( ACE_Timer_Queue tq)
pure virtual
virtual ACE_Timer_Queue* ACE_Reactor_Impl::timer_queue ( void  ) const
pure virtual
virtual bool ACE_Reactor_Impl::uses_event_associations ( void  )
pure virtual

Return true if we any event associations were made by the reactor for the handles that it waits on, false otherwise.

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

virtual void ACE_Reactor_Impl::wakeup_all_threads ( void  )
pure virtual
virtual int ACE_Reactor_Impl::work_pending ( const ACE_Time_Value max_wait_time = ACE_Time_Value::zero)
pure virtual

Returns non-zero if there are I/O events "ready" for dispatching, but does not actually dispatch the event handlers. By default, don't block while checking this, i.e., "poll".

Implemented in ACE_WFMO_Reactor, ACE_Dev_Poll_Reactor, ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >, and ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

Member Data Documentation

ACE_Reactor_Impl::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.


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