SObjectizer  5.5
Public Member Functions | Private Types | Private Attributes | List of all members
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. More...
 
virtual void process_expired_timers () override
 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) override
 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) override
 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) override
 Push anonymous delayed/periodic message to the timer queue. More...
 
virtual bool empty () override
 
virtual timer_thread_stats_t query_stats () override
 Get statistics for run-time monitoring. More...
 
- 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

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

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.

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.

◆ 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.

◆ 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.

◆ 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.

Implements so_5::timer_manager_t.

◆ 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.

Implements so_5::timer_manager_t.

◆ 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.

Implements so_5::timer_manager_t.

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

◆ m_manager

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

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