#include <ace/ReactorEx.h> class ACE_ReactorEx {
public:
enum { MAX_SIZE = MAXIMUM_WAIT_OBJECTS, };
ACE_ReactorEx (void);
virtual ~ACE_ReactorEx (void);
virtual int handle_events ( ACE_Time_Value *how_long = 0, int wait_all = 0 );
virtual int handle_events ( ACE_Time_Value &how_long, int wait_all = 0 );
virtual int register_handler ( ACE_Event_Handler *eh, ACE_HANDLE handle = ACE_INVALID_HANDLE );
virtual int remove_handler ( ACE_Event_Handler *eh, ACE_Reactor_Mask mask = 0 );
virtual int notify (void);
virtual int schedule_timer ( ACE_Event_Handler *eh, const void *arg, const ACE_Time_Value &delta, const ACE_Time_Value &interval = ACE_Time_Value::zero );
virtual int cancel_timer (ACE_Event_Handler *event_handler);
virtual int cancel_timer (int timer_id, const void **arg = 0);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
inline virtual int handle_events (void);
inline virtual int handle_events (ACE_Time_Value &);
inline virtual int notify (void);
protected:
int handle_notification (void);
ACE_Timer_Queue timer_queue_;
ACE_Time_Value timer_skew_;
ACE_HANDLE handles_[MAX_SIZE];
ACE_Event_Handler *handlers_[MAX_SIZE];
size_t active_handles_;
ACE_ReactorEx_Token token_;
private:
ACE_ReactorEx (const ACE_ReactorEx &);
ACE_ReactorEx &operator = (const ACE_ReactorEx &);
ACE_ReactorEx_Notify notify_handler_;
};
ACE_ReactorEx (void);
virtual ~ACE_ReactorEx (void);
virtual int handle_events (
ACE_Time_Value *how_long = 0,
int wait_all = 0
);
virtual int handle_events (
ACE_Time_Value &how_long,
int wait_all = 0
);
virtual int register_handler (
ACE_Event_Handler *eh,
ACE_HANDLE handle = ACE_INVALID_HANDLE
);
virtual int remove_handler (
ACE_Event_Handler *eh,
ACE_Reactor_Mask mask = 0
);
virtual int notify (void);
virtual int schedule_timer (
ACE_Event_Handler *eh,
const void *arg,
const ACE_Time_Value &delta,
const ACE_Time_Value &interval = ACE_Time_Value::zero
);
virtual int cancel_timer (ACE_Event_Handler *event_handler);
virtual int cancel_timer (int timer_id, const void **arg = 0);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;