diff options
-rw-r--r-- | ace/OS.h | 2 | ||||
-rw-r--r-- | ace/Select_Reactor.cpp | 17 | ||||
-rw-r--r-- | ace/Select_Reactor.h | 5 | ||||
-rw-r--r-- | ace/WFMO_Reactor.h | 7 | ||||
-rw-r--r-- | ace/XtReactor.cpp | 8 | ||||
-rw-r--r-- | ace/XtReactor.h | 11 |
6 files changed, 43 insertions, 7 deletions
@@ -2100,7 +2100,7 @@ typedef char TCHAR; #define ACE_INVALID_HANDLE -1 #define ACE_SYSCALL_FAILED -1 -#define ACE_SEH_TRY +#define ACE_SEH_TRY if (1) #define ACE_SEH_EXCEPT(X) while (0) #define ACE_SEH_FINALLY while (0) diff --git a/ace/Select_Reactor.cpp b/ace/Select_Reactor.cpp index 82cb9be019c..889fdbbc634 100644 --- a/ace/Select_Reactor.cpp +++ b/ace/Select_Reactor.cpp @@ -581,6 +581,23 @@ ACE_Select_Reactor_Token::ACE_Select_Reactor_Token (void) ACE_TRACE ("ACE_Select_Reactor_Token::ACE_Select_Reactor_Token"); } +ACE_Select_Reactor_Token::~ACE_Select_Reactor_Token (void) +{ + ACE_TRACE ("ACE_Select_Reactor_Token::~ACE_Select_Reactor_Token"); +} + +ACE_Select_Reactor & +ACE_Select_Reactor_Token::select_reactor (void) +{ + return *this->select_reactor_; +} + +void +ACE_Select_Reactor_Token::select_reactor (ACE_Select_Reactor &select_reactor) +{ + this->select_reactor_ = &select_reactor; +} + // Used to wakeup the Select_Reactor. void diff --git a/ace/Select_Reactor.h b/ace/Select_Reactor.h index f50517cb2c1..ff05d081f44 100644 --- a/ace/Select_Reactor.h +++ b/ace/Select_Reactor.h @@ -67,10 +67,15 @@ class ACE_Export ACE_Select_Reactor_Token : public ACE_SELECT_REACTOR_MUTEX public: ACE_Select_Reactor_Token (ACE_Select_Reactor &r); ACE_Select_Reactor_Token (void); + virtual ~ACE_Select_Reactor_Token (void); virtual void sleep_hook (void); // Called just before the ACE_Event_Handler goes to sleep. + ACE_Select_Reactor &select_reactor (void); + void select_reactor (ACE_Select_Reactor &); + // Set/Get methods + void dump (void) const; // Dump the state of an object. diff --git a/ace/WFMO_Reactor.h b/ace/WFMO_Reactor.h index e8d8954ec65..4134ee7615c 100644 --- a/ace/WFMO_Reactor.h +++ b/ace/WFMO_Reactor.h @@ -993,10 +993,11 @@ int WSAEnumNetworkEvents (SOCKET s, class ACE_Export ACE_WFMO_Reactor : public ACE_Reactor_Impl { public: - virtual int handle_events (void) { return -1; } + virtual int handle_events (ACE_Time_Value * = 0) { return -1; } virtual int handle_events (ACE_Time_Value &) { return -1; } - int notify (ACE_Event_Handler * = 0, - ACE_Reactor_Mask = ACE_Event_Handler::EXCEPT_MASK) + virtual int notify (ACE_Event_Handler * = 0, + ACE_Reactor_Mask = ACE_Event_Handler::EXCEPT_MASK, + ACE_Time_Value * = 0) { return 0; } }; diff --git a/ace/XtReactor.cpp b/ace/XtReactor.cpp index 491d9f27b68..0e28c4fb726 100644 --- a/ace/XtReactor.cpp +++ b/ace/XtReactor.cpp @@ -277,6 +277,14 @@ ACE_XtReactor::remove_handler_i (ACE_HANDLE handle, return 0; } +int +ACE_XtReactor::remove_handler_i (const ACE_Handle_Set &handles, + ACE_Reactor_Mask mask) +{ + return ACE_Select_Reactor::remove_handler_i (handles, + mask); +} + // The following functions ensure that there is an Xt timeout for the // first timeout in the Reactor's Timer_Queue. diff --git a/ace/XtReactor.h b/ace/XtReactor.h index dbc0af6a20b..2ddc9620d1b 100644 --- a/ace/XtReactor.h +++ b/ace/XtReactor.h @@ -68,15 +68,20 @@ protected: ACE_Reactor_Mask mask); // Register a set of <handlers>. - virtual int remove_handler_i (ACE_HANDLE handle, ACE_Reactor_Mask mask); + virtual int remove_handler_i (ACE_HANDLE handle, + ACE_Reactor_Mask mask); // Remove the <handler> associated with this <handle>. - virtual int wait_for_multiple_events (ACE_Reactor_Handle_Set &, + virtual int remove_handler_i (const ACE_Handle_Set &handles, + ACE_Reactor_Mask); + // Remove a set of <handles>. + + virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &, ACE_Time_Value *); // Wait for events to occur. virtual int XtWaitForMultipleEvents (int, - ACE_Reactor_Handle_Set &, + ACE_Select_Reactor_Handle_Set &, ACE_Time_Value *); XtAppContext context_; |