Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ACE_TkReactor Class Reference

An object-oriented event demultiplexor and event handler dispatcher that uses the Tk functions. More...

#include <TkReactor.h>

Inheritance diagram for ACE_TkReactor:

Inheritance graph
[legend]
Collaboration diagram for ACE_TkReactor:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_TkReactor (size_t size=DEFAULT_SIZE, int restart=0, ACE_Sig_Handler *=0)
virtual ~ACE_TkReactor (void)
virtual long schedule_timer (ACE_Event_Handler *event_handler, const void *arg, const ACE_Time_Value &delay, const ACE_Time_Value &interval)
virtual int reset_timer_interval (long timer_id, const ACE_Time_Value &interval)
virtual int cancel_timer (ACE_Event_Handler *handler, int dont_call_handle_close=1)
virtual int cancel_timer (long timer_id, const void **arg=0, int dont_call_handle_close=1)

Protected Member Functions

virtual int register_handler_i (ACE_HANDLE handle, ACE_Event_Handler *handler, ACE_Reactor_Mask mask)
 Register a single <handler>.
virtual int register_handler_i (const ACE_Handle_Set &handles, ACE_Event_Handler *handler, ACE_Reactor_Mask mask)
 Register a set of <handlers>.
virtual int remove_handler_i (ACE_HANDLE handle, ACE_Reactor_Mask mask)
 Remove the <handler> associated with this <handle>.
virtual int remove_handler_i (const ACE_Handle_Set &handles, ACE_Reactor_Mask)
 Remove a set of <handles>.
virtual void remove_TkFileHandler (ACE_HANDLE handle)
 Removes an Tk FileHandler.
virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &, ACE_Time_Value *)
 Wait for events to occur.
virtual int TkWaitForMultipleEvents (int, ACE_Select_Reactor_Handle_Set &, ACE_Time_Value *)
 Wait for Tk events to occur.

Protected Attributes

ACE_TkReactorIDids_
Tk_TimerToken timeout_

Private Member Functions

void reset_timeout (void)
 ACE_TkReactor (const ACE_TkReactor &)
 Deny access since member-wise won't work...
ACE_TkReactoroperator= (const ACE_TkReactor &)

Static Private Member Functions

void TimerCallbackProc (ClientData cd)
void InputCallbackProc (ClientData cd, int mask)

Detailed Description

An object-oriented event demultiplexor and event handler dispatcher that uses the Tk functions.


Constructor & Destructor Documentation

ACE_TkReactor::ACE_TkReactor size_t  size = DEFAULT_SIZE,
int  restart = 0,
ACE_Sig_Handler = 0
 

ACE_TkReactor::~ACE_TkReactor void   )  [virtual]
 

ACE_TkReactor::ACE_TkReactor const ACE_TkReactor  )  [private]
 

Deny access since member-wise won't work...


Member Function Documentation

int ACE_TkReactor::cancel_timer long  timer_id,
const void **  arg = 0,
int  dont_call_handle_close = 1
[virtual]
 

Cancel the single <ace_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. If <dont_call_handle_close> is 0 then the <handle_close> method of <event_handler> will be invoked. Returns 1 if cancellation succeeded and 0 if the <timer_id> wasn't found.

Reimplemented from ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

int ACE_TkReactor::cancel_timer ACE_Event_Handler handler,
int  dont_call_handle_close = 1
[virtual]
 

Cancel all <event_handlers> that match the address of <event_handler>. If <dont_call_handle_close> is 0 then the <handle_close> method of <event_handler> will be invoked. Returns number of handler's cancelled.

Reimplemented from ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

void ACE_TkReactor::InputCallbackProc ClientData  cd,
int  mask
[static, private]
 

Todo:
the unused mask argument is probably quite useful, but we ignore it, why? In fact the following comment probably relates to that: This could be made shorter if we know which *kind* of event we were about to get. Here we use <select> to find out which one might be available.

ACE_TkReactor& ACE_TkReactor::operator= const ACE_TkReactor  )  [private]
 

int ACE_TkReactor::register_handler_i const ACE_Handle_Set handles,
ACE_Event_Handler handler,
ACE_Reactor_Mask  mask
[protected, virtual]
 

Register a set of <handlers>.

Reimplemented from ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

int ACE_TkReactor::register_handler_i ACE_HANDLE  handle,
ACE_Event_Handler handler,
ACE_Reactor_Mask  mask
[protected, virtual]
 

Register a single <handler>.

Reimplemented from ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

int ACE_TkReactor::remove_handler_i const ACE_Handle_Set handles,
ACE_Reactor_Mask 
[protected, virtual]
 

Remove a set of <handles>.

Reimplemented from ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

int ACE_TkReactor::remove_handler_i ACE_HANDLE  handle,
ACE_Reactor_Mask  mask
[protected, virtual]
 

Remove the <handler> associated with this <handle>.

Reimplemented from ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

void ACE_TkReactor::remove_TkFileHandler ACE_HANDLE  handle  )  [protected, virtual]
 

Removes an Tk FileHandler.

void ACE_TkReactor::reset_timeout void   )  [private]
 

This method ensures there's a Tk timeout for the first timeout in the Reactor's Timer_Queue.

int ACE_TkReactor::reset_timer_interval long  timer_id,
const ACE_Time_Value interval
[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.

Reimplemented from ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

long ACE_TkReactor::schedule_timer ACE_Event_Handler event_handler,
const void *  arg,
const ACE_Time_Value delay,
const ACE_Time_Value interval
[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_handler Event handler to schedule on reactor
arg Argument passed to the handle_timeout() method of event_handler
delay Time interval after which the timer will expire
interval Time interval after which the timer will be automatically rescheduled
Returns:
-1 on failure, a timer_id value on success

Reimplemented from ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.

void ACE_TkReactor::TimerCallbackProc ClientData  cd  )  [static, private]
 

int ACE_TkReactor::TkWaitForMultipleEvents int  ,
ACE_Select_Reactor_Handle_Set ,
ACE_Time_Value
[protected, virtual]
 

Wait for Tk events to occur.

int ACE_TkReactor::wait_for_multiple_events ACE_Select_Reactor_Handle_Set ,
ACE_Time_Value
[protected, virtual]
 

Wait for events to occur.

Reimplemented from ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.


Member Data Documentation

ACE_TkReactorID* ACE_TkReactor::ids_ [protected]
 

Tk_TimerToken ACE_TkReactor::timeout_ [protected]
 


The documentation for this class was generated from the following files:
Generated on Fri Dec 31 14:58:33 2004 for ACE by  doxygen 1.3.9.1