00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef ACE_FLREACTOR_H
00019 #define ACE_FLREACTOR_H
00020 #include "ace/pre.h"
00021
00022 #include "ace/config-all.h"
00023
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 #endif
00027
00028 #include "ace/ACE_FlReactor_export.h"
00029 #include "ace/Select_Reactor.h"
00030
00031 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 class ACE_FlReactor_Export ACE_FlReactor : public ACE_Select_Reactor
00047 {
00048
00049 public:
00050
00051 ACE_FlReactor (size_t size = DEFAULT_SIZE,
00052 int restart = 0,
00053 ACE_Sig_Handler * = 0);
00054 virtual ~ACE_FlReactor (void);
00055
00056
00057 virtual long schedule_timer (ACE_Event_Handler *event_handler,
00058 const void *arg,
00059 const ACE_Time_Value &delay,
00060 const ACE_Time_Value &interval);
00061 virtual int reset_timer_interval (long timer_id,
00062 const ACE_Time_Value &interval);
00063 virtual int cancel_timer (ACE_Event_Handler *handler,
00064 int dont_call_handle_close = 1);
00065 virtual int cancel_timer (long timer_id,
00066 const void **arg = 0,
00067 int dont_call_handle_close = 1);
00068
00069 protected:
00070
00071
00072 virtual int register_handler_i (ACE_HANDLE handle,
00073 ACE_Event_Handler *handler,
00074 ACE_Reactor_Mask mask);
00075
00076
00077 virtual int register_handler_i (const ACE_Handle_Set &handles,
00078 ACE_Event_Handler *handler,
00079 ACE_Reactor_Mask mask);
00080
00081
00082 virtual int remove_handler_i (ACE_HANDLE handle,
00083 ACE_Reactor_Mask mask);
00084
00085
00086 virtual int remove_handler_i (const ACE_Handle_Set &handles,
00087 ACE_Reactor_Mask);
00088
00089
00090 virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &,
00091 ACE_Time_Value *);
00092
00093 private:
00094
00095
00096 void reset_timeout (void);
00097
00098
00099 static void fl_io_proc (int fd, void*);
00100 static void fl_timeout_proc (void*);
00101
00102
00103 ACE_FlReactor (const ACE_FlReactor &);
00104 ACE_FlReactor &operator = (const ACE_FlReactor &);
00105 };
00106
00107 ACE_END_VERSIONED_NAMESPACE_DECL
00108
00109 #include "ace/post.h"
00110 #endif