#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 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 &);};
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 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
    );
virtual int register_handler_i (
    ACE_HANDLE handle,
    ACE_Event_Handler *handler,
    ACE_Reactor_Mask mask
    );
handler.
virtual int register_handler_i (
    const ACE_Handle_Set &handles,
    ACE_Event_Handler *handler,
    ACE_Reactor_Mask mask
    );
handlers.
virtual int remove_handler_i (
    ACE_HANDLE handle,
    ACE_Reactor_Mask mask
    );
handler associated with this handle.
virtual int remove_handler_i (
    const ACE_Handle_Set &handles,
    ACE_Reactor_Mask
    );
handles.
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_;
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 &);
ecn@clark.net,
Kirill Rybaltchenko Kirill.Rybaltchenko@cern.ch, and
Douglas C. Schmidt schmidt@cs.wustl.edu