Functor for Timer_Queues. More...
#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_ |
Functor for Timer_Queues.
This class implements the functor required by the Timer Queue to call <handle_timeout> on ACE_Event_Handlers.
Definition at line 479 of file Timer_Queue_T.h.
| typedef ACE_Timer_Queue_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>, ACE_LOCK> ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::TIMER_QUEUE |
Definition at line 485 of file Timer_Queue_T.h.
| ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::ACE_Event_Handler_Handle_Timeout_Upcall | ( | void | ) |
| ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::~ACE_Event_Handler_Handle_Timeout_Upcall | ( | void | ) |
| ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::ACE_Event_Handler_Handle_Timeout_Upcall | ( | const ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK > & | ) | [private] |
| int ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::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.
Definition at line 505 of file Timer_Queue_T.cpp.
{
if (requires_reference_counting)
event_handler->remove_reference ();
return 0;
}
| int ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::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.
Definition at line 487 of file Timer_Queue_T.cpp.
{
requires_reference_counting =
event_handler->reference_counting_policy ().value () ==
ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
// Upcall to the <handler>s handle_close method
if (dont_call == 0)
event_handler->handle_close (ACE_INVALID_HANDLE,
ACE_Event_Handler::TIMER_MASK);
return 0;
}
| int ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::deletion | ( | TIMER_QUEUE & | timer_queue, | |
| ACE_Event_Handler * | handler, | |||
| const void * | arg | |||
| ) |
This method is called when the timer queue is destroyed and the timer is still contained in it
Definition at line 517 of file Timer_Queue_T.cpp.
{
int requires_reference_counting = 0;
this->cancel_type (timer_queue,
event_handler,
0,
requires_reference_counting);
this->cancel_timer (timer_queue,
event_handler,
0,
requires_reference_counting);
return 0;
}
| void ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::operator= | ( | const ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK > & | ) | [private] |
| int ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::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.
Definition at line 437 of file Timer_Queue_T.cpp.
{
if (upcall_act == &this->requires_reference_counting_)
{
event_handler->remove_reference ();
}
return 0;
}
| int ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::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.
Definition at line 415 of file Timer_Queue_T.cpp.
{
bool const requires_reference_counting =
event_handler->reference_counting_policy ().value () ==
ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
if (requires_reference_counting)
{
event_handler->add_reference ();
upcall_act = &this->requires_reference_counting_;
}
return 0;
}
| int ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::registration | ( | TIMER_QUEUE & | timer_queue, | |
| ACE_Event_Handler * | handler, | |||
| const void * | arg | |||
| ) |
This method is called when a timer is registered.
Definition at line 406 of file Timer_Queue_T.cpp.
{
event_handler->add_reference ();
return 0;
}
| int ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::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.
Definition at line 453 of file Timer_Queue_T.cpp.
{
int requires_reference_counting = 0;
if (!recurring_timer)
{
requires_reference_counting =
event_handler->reference_counting_policy ().value () ==
ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
}
// Upcall to the <handler>s handle_timeout method.
if (event_handler->handle_timeout (cur_time, act) == -1)
{
if (event_handler->reactor_timer_interface ())
event_handler->reactor_timer_interface ()->cancel_timer (event_handler, 0);
else
timer_queue.cancel (event_handler, 0); // 0 means "call handle_close()".
}
if (!recurring_timer &&
requires_reference_counting)
{
event_handler->remove_reference ();
}
return 0;
}
int ACE_Event_Handler_Handle_Timeout_Upcall< ACE_LOCK >::requires_reference_counting_ [private] |
Flag indicating that reference counting is required for this event handler upcall.
Definition at line 544 of file Timer_Queue_T.h.
1.7.0