NAME
ACE_XtReactor - An object-oriented event demultiplexor and event handler dispatcher that uses the X Toolkit functions.
SYNOPSIS
#include <ace/XtReactor.h>
class ACE_XtReactor : public ACE_Select_Reactor
{
public:
ACE_XtReactor (
XtAppContext context = 0,
size_t size = DEFAULT_SIZE,
int restart = 0,
ACE_Sig_Handler * = 0
);
virtual ~ACE_XtReactor (void);
XtAppContext context (void) const;
void context (XtAppContext);
virtual long schedule_timer (
ACE_Event_Handler *handler,
const void *arg,
const ACE_Time_Value &delta_time,
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:
virtual int register_handler_i (
ACE_HANDLE handle,
ACE_Event_Handler *handler,
ACE_Reactor_Mask mask
);
virtual int register_handler_i (
const ACE_Handle_Set &handles,
ACE_Event_Handler *handler,
ACE_Reactor_Mask mask
);
virtual int remove_handler_i (
ACE_HANDLE handle,
ACE_Reactor_Mask mask
);
virtual int remove_handler_i (
const ACE_Handle_Set &handles,
ACE_Reactor_Mask
);
virtual void remove_XtInput (ACE_HANDLE handle);
virtual int wait_for_multiple_events (
ACE_Select_Reactor_Handle_Set &,
ACE_Time_Value *
);
virtual int XtWaitForMultipleEvents (
int,
ACE_Select_Reactor_Handle_Set &,
ACE_Time_Value *
);
XtAppContext context_;
ACE_XtReactorID *ids_;
XtIntervalId timeout_;
private:
void reset_timeout (void);
static void TimerCallbackProc (
XtPointer closure,
XtIntervalId *id
);
static void InputCallbackProc (
XtPointer closure,
int* source,
XtInputId *id
);
ACE_XtReactor (const ACE_XtReactor &);
ACE_XtReactor &operator = (const ACE_XtReactor &);
};
Initialization and termination methods.
ACE_XtReactor (
XtAppContext context = 0,
size_t size = DEFAULT_SIZE,
int restart = 0,
ACE_Sig_Handler * = 0
);
virtual ~ACE_XtReactor (void);
XtAppContext context (void) const;
void context (XtAppContext);
Timer operations.
virtual long schedule_timer (
ACE_Event_Handler *handler,
const void *arg,
const ACE_Time_Value &delta_time,
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
);
Register timers/handles with Xt.
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_XtInput (ACE_HANDLE handle);
Removes an Xt handle.
virtual int wait_for_multiple_events (
ACE_Select_Reactor_Handle_Set &,
ACE_Time_Value *
);
Wait for events to occur.
virtual int XtWaitForMultipleEvents (
int,
ACE_Select_Reactor_Handle_Set &,
ACE_Time_Value *
);
Wait for Xt events to occur.
XtAppContext context_;
ACE_XtReactorID *ids_;
XtIntervalId timeout_;
Integrate with the X callback function mechanism.
static void TimerCallbackProc (XtPointer closure, XtIntervalId *id);
static void InputCallbackProc (
XtPointer closure,
int* source,
XtInputId *id
);
ACE_XtReactor (const ACE_XtReactor &);
ACE_XtReactor &operator = (const ACE_XtReactor &);
Deny access since member-wise won't work...
AUTHOR
Eric C. Newton's [email protected], Kirill Rybaltchenko [email protected], and Douglas C. Schmidt [email protected]
LIBRARY
ace