#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 340 of file Timer_Queue_T.cpp.
00341 { 00342 } |
|
Destructor.
Definition at line 345 of file Timer_Queue_T.cpp.
00346 { 00347 } |
|
|
|
This method is called when a timer is cancelled.
Definition at line 449 of file Timer_Queue_T.cpp. References ACE_Event_Handler::remove_reference(). Referenced by ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::deletion().
00453 { 00454 if (requires_reference_counting) 00455 event_handler->remove_reference (); 00456 00457 return 0; 00458 } |
|
This method is called when a handler is cancelled.
Definition at line 431 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().
00435 { 00436 requires_reference_counting = 00437 event_handler->reference_counting_policy ().value () == 00438 ACE_Event_Handler::Reference_Counting_Policy::ENABLED; 00439 00440 // Upcall to the <handler>s handle_close method 00441 if (dont_call == 0) 00442 event_handler->handle_close (ACE_INVALID_HANDLE, 00443 ACE_Event_Handler::TIMER_MASK); 00444 00445 return 0; 00446 } |
|
This method is called when the timer queue is destroyed and the timer is still contained in it Definition at line 461 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().
00464 { 00465 int requires_reference_counting = 0; 00466 00467 this->cancel_type (timer_queue, 00468 event_handler, 00469 0, 00470 requires_reference_counting); 00471 00472 this->cancel_timer (timer_queue, 00473 event_handler, 00474 0, 00475 requires_reference_counting); 00476 00477 return 0; 00478 } |
|
|
|
This method is called after the timer expires.
Definition at line 381 of file Timer_Queue_T.cpp. References ACE_Event_Handler::remove_reference(), and ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::requires_reference_counting_.
00387 { 00388 if (upcall_act == &this->requires_reference_counting_) 00389 { 00390 event_handler->remove_reference (); 00391 } 00392 00393 return 0; 00394 } |
|
This method is called before the timer expires.
Definition at line 359 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_.
00365 { 00366 bool const requires_reference_counting = 00367 event_handler->reference_counting_policy ().value () == 00368 ACE_Event_Handler::Reference_Counting_Policy::ENABLED; 00369 00370 if (requires_reference_counting) 00371 { 00372 event_handler->add_reference (); 00373 00374 upcall_act = &this->requires_reference_counting_; 00375 } 00376 00377 return 0; 00378 } |
|
This method is called when a timer is registered.
Definition at line 350 of file Timer_Queue_T.cpp. References ACE_Event_Handler::add_reference().
00353 { 00354 event_handler->add_reference (); 00355 return 0; 00356 } |
|
This method is called when the timer expires.
Definition at line 397 of file Timer_Queue_T.cpp. References ACE_Reactor_Timer_Interface::cancel_timer(), ACE_Event_Handler::handle_timeout(), ACE_Event_Handler::reactor_timer_interface(), ACE_Event_Handler::reference_counting_policy(), and ACE_Event_Handler::remove_reference().
00402 { 00403 int requires_reference_counting = 0; 00404 00405 if (!recurring_timer) 00406 { 00407 requires_reference_counting = 00408 event_handler->reference_counting_policy ().value () == 00409 ACE_Event_Handler::Reference_Counting_Policy::ENABLED; 00410 } 00411 00412 // Upcall to the <handler>s handle_timeout method. 00413 if (event_handler->handle_timeout (cur_time, act) == -1) 00414 { 00415 if (event_handler->reactor_timer_interface ()) 00416 event_handler->reactor_timer_interface ()->cancel_timer (event_handler, 0); 00417 else 00418 timer_queue.cancel (event_handler, 0); // 0 means "call handle_close()". 00419 } 00420 00421 if (!recurring_timer && 00422 requires_reference_counting) 00423 { 00424 event_handler->remove_reference (); 00425 } 00426 00427 return 0; 00428 } |
|
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(). |