|
SObjectizer
5.7
|
Timer manager interface. More...
#include <timers.hpp>
Classes | |
| class | elapsed_timers_collector_t |
| An interface for collector of elapsed timers. More... | |
Public Member Functions | |
| timer_manager_t () noexcept=default | |
| virtual | ~timer_manager_t () noexcept=default |
| virtual void | process_expired_timers ()=0 |
| Translation of expired timers into message sends. More... | |
| virtual std::chrono::steady_clock::duration | timeout_before_nearest_timer (std::chrono::steady_clock::duration default_timer)=0 |
| Calculate time before the nearest timer (if any). More... | |
| virtual timer_id_t | schedule (const std::type_index &type_index, const mbox_t &mbox, const message_ref_t &msg, std::chrono::steady_clock::duration pause, std::chrono::steady_clock::duration period)=0 |
| Push delayed/periodic message to the timer queue. More... | |
| virtual void | schedule_anonymous (const std::type_index &type_index, const mbox_t &mbox, const message_ref_t &msg, std::chrono::steady_clock::duration pause, std::chrono::steady_clock::duration period)=0 |
| Push anonymous delayed/periodic message to the timer queue. More... | |
| virtual bool | empty ()=0 |
| virtual timer_thread_stats_t | query_stats ()=0 |
| Get statistics for run-time monitoring. More... | |
Private Member Functions | |
| timer_manager_t (const timer_manager_t &)=delete | |
| timer_manager_t & | operator= (const timer_manager_t &)=delete |
Timer manager interface.
Interface for all implementations of timer_managers.
Timer managers do not create externals threads and must not use any mutexs/spinlocks inside. All work must be done only on the context of the caller thread.
|
privatedelete |
|
defaultnoexcept |
|
virtualdefaultnoexcept |
|
pure virtual |
Implemented in so_5::timers_details::actual_manager_t< Timer_Manager >.
|
privatedelete |
|
pure virtual |
Translation of expired timers into message sends.
Implemented in so_5::timers_details::actual_manager_t< Timer_Manager >.
|
pure virtual |
Get statistics for run-time monitoring.
Implemented in so_5::timers_details::actual_manager_t< Timer_Manager >.
|
pure virtual |
Push delayed/periodic message to the timer queue.
A timer can be deactivated later by using returned timer_id.
| type_index | Type of message to be sheduled. |
| mbox | Mbox for message delivery. |
| msg | Message to be sent. |
| pause | Pause before first message delivery. |
| period | Period for message repetition. Zero value means single shot delivery. |
Implemented in so_5::timers_details::actual_manager_t< Timer_Manager >.
|
pure virtual |
Push anonymous delayed/periodic message to the timer queue.
A timer cannot be deactivated later.
| type_index | Type of message to be sheduled. |
| mbox | Mbox for message delivery. |
| msg | Message to be sent. |
| pause | Pause before first message delivery. |
| period | Period for message repetition. Zero value means single shot delivery. |
Implemented in so_5::timers_details::actual_manager_t< Timer_Manager >.
|
pure virtual |
Calculate time before the nearest timer (if any).
Return timeout before the nearest timer or default_timeout if there is no any timer.
| default_timer | Default timeout if there is no any timer. |
Implemented in so_5::timers_details::actual_manager_t< Timer_Manager >.
1.8.14