#include <Timer_Queue_T.h>
Public Types | |
typedef ACE_Timer_Queue_T< ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >, ACE_LOCK > | TIMER_QUEUE |
Public Member Functions | |
ACE_Event_Handler_Handle_Timeout_Upcall (void) | |
Constructor. | |
~ACE_Event_Handler_Handle_Timeout_Upcall (void) | |
Destructor. | |
int | registration (TIMER_QUEUE &timer_queue, ACE_Event_Handler *handler, const void *arg) |
This method is called when a timer is registered. | |
int | preinvoke (TIMER_QUEUE &timer_queue, ACE_Event_Handler *handler, const void *arg, int recurring_timer, const ACE_Time_Value &cur_time, const void *&upcall_act) |
This method is called before the timer expires. | |
int | timeout (TIMER_QUEUE &timer_queue, ACE_Event_Handler *handler, const void *arg, int recurring_timer, const ACE_Time_Value &cur_time) |
This method is called when the timer expires. | |
int | postinvoke (TIMER_QUEUE &timer_queue, ACE_Event_Handler *handler, const void *arg, int recurring_timer, const ACE_Time_Value &cur_time, const void *upcall_act) |
This method is called after the timer expires. | |
int | cancel_type (TIMER_QUEUE &timer_queue, ACE_Event_Handler *handler, int dont_call, int &requires_reference_counting) |
This method is called when a handler is cancelled. | |
int | cancel_timer (TIMER_QUEUE &timer_queue, ACE_Event_Handler *handler, int dont_call, int requires_reference_counting) |
This method is called when a timer is cancelled. | |
int | deletion (TIMER_QUEUE &timer_queue, ACE_Event_Handler *handler, const void *arg) |
Private Member Functions | |
ACE_Event_Handler_Handle_Timeout_Upcall (const ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK > &) | |
void | operator= (const ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK > &) |
Private Attributes | |
int | requires_reference_counting_ |
This class implements the functor required by the Timer Queue to call on ACE_Event_Handlers.
Definition at line 475 of file Timer_Queue_T.h.
|
Definition at line 481 of file Timer_Queue_T.h. |
|
Constructor.
Definition at line 335 of file Timer_Queue_T.cpp.
00336 { 00337 } |
|
Destructor.
Definition at line 340 of file Timer_Queue_T.cpp.
00341 { 00342 } |
|
|
|
This method is called when a timer is cancelled.
Definition at line 444 of file Timer_Queue_T.cpp. References ACE_Event_Handler::remove_reference(). Referenced by ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::deletion().
00448 { 00449 if (requires_reference_counting) 00450 event_handler->remove_reference (); 00451 00452 return 0; 00453 } |
|
This method is called when a handler is cancelled.
Definition at line 426 of file Timer_Queue_T.cpp. References ACE_Event_Handler::handle_close(), and ACE_Event_Handler::reference_counting_policy(). Referenced by ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::deletion().
00430 { 00431 requires_reference_counting = 00432 event_handler->reference_counting_policy ().value () == 00433 ACE_Event_Handler::Reference_Counting_Policy::ENABLED; 00434 00435 // Upcall to the <handler>s handle_close method 00436 if (dont_call == 0) 00437 event_handler->handle_close (ACE_INVALID_HANDLE, 00438 ACE_Event_Handler::TIMER_MASK); 00439 00440 return 0; 00441 } |
|
This method is called when the timer queue is destroyed and the timer is still contained in it Definition at line 456 of file Timer_Queue_T.cpp. References ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::cancel_timer(), and ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::cancel_type().
00459 { 00460 int requires_reference_counting = 0; 00461 00462 this->cancel_type (timer_queue, 00463 event_handler, 00464 0, 00465 requires_reference_counting); 00466 00467 this->cancel_timer (timer_queue, 00468 event_handler, 00469 0, 00470 requires_reference_counting); 00471 00472 return 0; 00473 } |
|
|
|
This method is called after the timer expires.
Definition at line 376 of file Timer_Queue_T.cpp. References ACE_Event_Handler::remove_reference(), and ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::requires_reference_counting_.
00382 { 00383 if (upcall_act == &this->requires_reference_counting_) 00384 { 00385 event_handler->remove_reference (); 00386 } 00387 00388 return 0; 00389 } |
|
This method is called before the timer expires.
Definition at line 354 of file Timer_Queue_T.cpp. References ACE_Event_Handler::add_reference(), ACE_Event_Handler::reference_counting_policy(), and ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::requires_reference_counting_.
00360 { 00361 int requires_reference_counting = 00362 event_handler->reference_counting_policy ().value () == 00363 ACE_Event_Handler::Reference_Counting_Policy::ENABLED; 00364 00365 if (requires_reference_counting) 00366 { 00367 event_handler->add_reference (); 00368 00369 upcall_act = &this->requires_reference_counting_; 00370 } 00371 00372 return 0; 00373 } |
|
This method is called when a timer is registered.
Definition at line 345 of file Timer_Queue_T.cpp. References ACE_Event_Handler::add_reference().
00348 { 00349 event_handler->add_reference (); 00350 return 0; 00351 } |
|
This method is called when the timer expires.
Definition at line 392 of file Timer_Queue_T.cpp. References ACE_Reactor_Timer_Interface::cancel_timer(), ACE_Event_Handler::handle_timeout(), ACE_Event_Handler::reactor(), ACE_Event_Handler::reactor_timer_interface(), ACE_Event_Handler::reference_counting_policy(), and ACE_Event_Handler::remove_reference().
00397 { 00398 int requires_reference_counting = 0; 00399 00400 if (!recurring_timer) 00401 { 00402 requires_reference_counting = 00403 event_handler->reference_counting_policy ().value () == 00404 ACE_Event_Handler::Reference_Counting_Policy::ENABLED; 00405 } 00406 00407 // Upcall to the <handler>s handle_timeout method. 00408 if (event_handler->handle_timeout (cur_time, act) == -1) 00409 { 00410 if (event_handler->reactor ()) 00411 event_handler->reactor_timer_interface ()->cancel_timer (event_handler, 0); 00412 else 00413 timer_queue.cancel (event_handler, 0); // 0 means "call handle_close()". 00414 } 00415 00416 if (!recurring_timer && 00417 requires_reference_counting) 00418 { 00419 event_handler->remove_reference (); 00420 } 00421 00422 return 0; 00423 } |
|
Flag indicating that reference counting is required for this event handler upcall. Definition at line 540 of file Timer_Queue_T.h. Referenced by ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::postinvoke(), and ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::preinvoke(). |