|
libassa
3.5.1
|
#include <TimerQueue.h>
Public Member Functions | |
| TimerQueue () | |
| Constructor. | |
| ~TimerQueue () | |
| Destructor. | |
| bool | isEmpty () |
| Is queue empty? | |
| TimerId | insert (EventHandler *eh_, const TimeVal &tv_, const TimeVal &delta_, const std::string &name_) |
| Add timer (EventHandler object) to the queue to be dispatch at the time specified. | |
| int | remove (EventHandler *eh_) |
| Cancel all timers for the EventHandler eh_. | |
| bool | remove (TimerId tid_) |
| Cancel timer. | |
| int | expire (const TimeVal &tv_) |
| Traverse the queue, triggering all timers that are past argument timeval. | |
| TimeVal & | top (void) |
| Return expiration time of the top element in the queue. | |
| void | dump (void) |
| Dump Queue information to the log file. | |
Private Attributes | |
| PriorityQueue< Timer *, TimerCompare > | m_queue |
| Timer queue itself. | |
Definition at line 35 of file TimerQueue.h.
|
inline |
| TimerQueue::~TimerQueue | ( | ) |
Destructor.
Definition at line 20 of file TimerQueue.cpp.
References m_queue, ASSA::PriorityQueue< T, Compare >::pop(), ASSA::REACTTRACE, ASSA::PriorityQueue< T, Compare >::size(), and trace_with_mask.
| void TimerQueue::dump | ( | void | ) |
Dump Queue information to the log file.
Definition at line 152 of file TimerQueue.cpp.
References DL, m_queue, ASSA::REACT, ASSA::PriorityQueue< T, Compare >::size(), and trace.
Referenced by ASSA::Reactor::calculateTimeout(), ASSA::Reactor::registerTimerHandler(), and ASSA::Reactor::removeTimerHandler().
| int TimerQueue::expire | ( | const TimeVal & | tv_ | ) |
Traverse the queue, triggering all timers that are past argument timeval.
Timer(s) are then removed from the queue.
@param tv_ Expiration time @return Number of callbacks dispatched
Reschedule without deleting the Timer object so that application-level code can still hold to the valid TimerId.
Definition at line 89 of file TimerQueue.cpp.
References DL, ASSA::Timer::dump(), ASSA::TimeVal::fmtString(), ASSA::Timer::get_id(), ASSA::Timer::getExpirationTime(), ASSA::Timer::getHandler(), ASSA::EventHandler::handle_timeout(), ASSA::PriorityQueue< T, Compare >::insert(), m_queue, ASSA::PriorityQueue< T, Compare >::pop(), ASSA::REACT, ASSA::REACTTRACE, ASSA::PriorityQueue< T, Compare >::size(), ASSA::PriorityQueue< T, Compare >::top(), ASSA::TRACE, and trace_with_mask.
Referenced by ASSA::Reactor::dispatch(), and ASSA::Reactor::waitForEvents().
| TimerId TimerQueue::insert | ( | EventHandler * | eh_, |
| const TimeVal & | tv_, | ||
| const TimeVal & | delta_, | ||
| const std::string & | name_ | ||
| ) |
Add timer (EventHandler object) to the queue to be dispatch at the time specified.
| eh_ | Pointer to Event Handler that will be called when timer expires. |
| tv_ | Absolute expiration time. |
| delta_ | Relative timeout value. |
| name_ | Name of the timer (for easy identification). |
Definition at line 138 of file TimerQueue.cpp.
References ASSA::PriorityQueue< T, Compare >::insert(), m_queue, and trace.
Referenced by ASSA::Reactor::registerTimerHandler().
|
inline |
Is queue empty?
Definition at line 110 of file TimerQueue.h.
References m_queue, and ASSA::PriorityQueue< T, Compare >::size().
Referenced by ASSA::Reactor::calculateTimeout().
| int TimerQueue::remove | ( | EventHandler * | eh_ | ) |
Cancel all timers for the EventHandler eh_.
| eh_ | Pointer to Event Handler. |
Definition at line 31 of file TimerQueue.cpp.
References DL, m_queue, ASSA::REACT, ASSA::REACTTRACE, ASSA::PriorityQueue< T, Compare >::remove(), ASSA::PriorityQueue< T, Compare >::size(), and trace_with_mask.
Referenced by ASSA::Reactor::removeHandler(), and ASSA::Reactor::removeTimerHandler().
| bool TimerQueue::remove | ( | TimerId | tid_ | ) |
Cancel timer.
| tid_ | Timer id. |
Definition at line 68 of file TimerQueue.cpp.
References DL, m_queue, ASSA::REACTTRACE, ASSA::PriorityQueue< T, Compare >::remove(), ASSA::PriorityQueue< T, Compare >::size(), and trace_with_mask.
|
inline |
Return expiration time of the top element in the queue.
Definition at line 117 of file TimerQueue.h.
References ASSA::Timer::getExpirationTime(), m_queue, and ASSA::PriorityQueue< T, Compare >::top().
Referenced by ASSA::Reactor::calculateTimeout().
|
private |
Timer queue itself.
Definition at line 94 of file TimerQueue.h.
Referenced by dump(), expire(), insert(), isEmpty(), remove(), top(), and ~TimerQueue().
1.8.1.1