SObjectizer 5.8
Loading...
Searching...
No Matches
so_5::timers_details::actual_manager_t< Timer_Manager > Class Template Reference

An actual implementation of timer_manager. More...

Inheritance diagram for so_5::timers_details::actual_manager_t< Timer_Manager >:
so_5::timer_manager_t

Public Member Functions

 actual_manager_t (std::unique_ptr< Timer_Manager > manager, outliving_reference_t< timer_manager_t::elapsed_timers_collector_t > collector)
 Initializing constructor.
 
virtual void process_expired_timers () override
 Translation of expired timers into message sends.
 
virtual std::chrono::steady_clock::duration timeout_before_nearest_timer (std::chrono::steady_clock::duration default_timer) override
 Calculate time before the nearest timer (if any).
 
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) override
 Push delayed/periodic message to the timer queue.
 
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) override
 Push anonymous delayed/periodic message to the timer queue.
 
virtual bool empty () override
 
virtual timer_thread_stats_t query_stats () override
 Get statistics for run-time monitoring.
 
- Public Member Functions inherited from so_5::timer_manager_t
 timer_manager_t () noexcept=default
 
virtual ~timer_manager_t () noexcept=default
 

Private Types

using timer_demand_t = actual_timer_t< Timer_Manager >
 

Private Attributes

std::unique_ptr< Timer_Manager > m_manager
 
outliving_reference_t< timer_manager_t::elapsed_timers_collector_tm_collector
 

Detailed Description

template<class Timer_Manager>
class so_5::timers_details::actual_manager_t< Timer_Manager >

An actual implementation of timer_manager.

Template Parameters
Timer_ManagerA type of timertt-based manager which implements timers.
Since
v.5.5.19

Definition at line 262 of file timers.cpp.

Member Typedef Documentation

◆ timer_demand_t

template<class Timer_Manager >
using so_5::timers_details::actual_manager_t< Timer_Manager >::timer_demand_t = actual_timer_t< Timer_Manager >
private

Definition at line 264 of file timers.cpp.

Constructor & Destructor Documentation

◆ actual_manager_t()

template<class Timer_Manager >
so_5::timers_details::actual_manager_t< Timer_Manager >::actual_manager_t ( std::unique_ptr< Timer_Manager > manager,
outliving_reference_t< timer_manager_t::elapsed_timers_collector_t > collector )
inline

Initializing constructor.

Parameters
managerReal timer thread.
collectorCollector for elapsed timers.

Definition at line 268 of file timers.cpp.

Member Function Documentation

◆ empty()

template<class Timer_Manager >
virtual bool so_5::timers_details::actual_manager_t< Timer_Manager >::empty ( )
inlineoverridevirtual
Returns
true if there is no any pending timers.

Implements so_5::timer_manager_t.

Definition at line 326 of file timers.cpp.

◆ process_expired_timers()

template<class Timer_Manager >
virtual void so_5::timers_details::actual_manager_t< Timer_Manager >::process_expired_timers ( )
inlineoverridevirtual

Translation of expired timers into message sends.

Implements so_5::timer_manager_t.

Definition at line 279 of file timers.cpp.

◆ query_stats()

template<class Timer_Manager >
virtual timer_thread_stats_t so_5::timers_details::actual_manager_t< Timer_Manager >::query_stats ( )
inlineoverridevirtual

Get statistics for run-time monitoring.

Since
v.5.5.4

Implements so_5::timer_manager_t.

Definition at line 332 of file timers.cpp.

◆ schedule()

template<class Timer_Manager >
virtual timer_id_t so_5::timers_details::actual_manager_t< Timer_Manager >::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 )
inlineoverridevirtual

Push delayed/periodic message to the timer queue.

A timer can be deactivated later by using returned timer_id.

Parameters
type_indexType of message to be sheduled.
mboxMbox for message delivery.
msgMessage to be sent.
pausePause before first message delivery.
periodPeriod for message repetition. Zero value means single shot delivery.

Implements so_5::timer_manager_t.

Definition at line 292 of file timers.cpp.

◆ schedule_anonymous()

template<class Timer_Manager >
virtual void so_5::timers_details::actual_manager_t< Timer_Manager >::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 )
inlineoverridevirtual

Push anonymous delayed/periodic message to the timer queue.

A timer cannot be deactivated later.

Parameters
type_indexType of message to be sheduled.
mboxMbox for message delivery.
msgMessage to be sent.
pausePause before first message delivery.
periodPeriod for message repetition. Zero value means single shot delivery.

Implements so_5::timer_manager_t.

Definition at line 311 of file timers.cpp.

◆ timeout_before_nearest_timer()

template<class Timer_Manager >
virtual std::chrono::steady_clock::duration so_5::timers_details::actual_manager_t< Timer_Manager >::timeout_before_nearest_timer ( std::chrono::steady_clock::duration default_timer)
inlineoverridevirtual

Calculate time before the nearest timer (if any).

Return timeout before the nearest timer or default_timeout if there is no any timer.

Parameters
default_timerDefault timeout if there is no any timer.

Implements so_5::timer_manager_t.

Definition at line 285 of file timers.cpp.

Member Data Documentation

◆ m_collector

template<class Timer_Manager >
outliving_reference_t< timer_manager_t::elapsed_timers_collector_t > so_5::timers_details::actual_manager_t< Timer_Manager >::m_collector
private

Definition at line 345 of file timers.cpp.

◆ m_manager

template<class Timer_Manager >
std::unique_ptr< Timer_Manager > so_5::timers_details::actual_manager_t< Timer_Manager >::m_manager
private

Definition at line 343 of file timers.cpp.


The documentation for this class was generated from the following file: