SObjectizer  5.5
Public Member Functions | Private Types | List of all members
timertt::timer_wheel_manager_template< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler > Class Template Reference

A timer wheel manager template. More...

#include <all.hpp>

Inheritance diagram for timertt::timer_wheel_manager_template< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >:
timertt::details::manager_impl_template< details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler > > timertt::details::basic_methods_impl_mixin< details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >, consumer_type::manager >

Public Member Functions

 timer_wheel_manager_template ()
 Default constructor. More...
 
 timer_wheel_manager_template (unsigned int wheel_size, monotonic_clock::duration granularity)
 Constructor with wheel size and granularity parameters. More...
 
 timer_wheel_manager_template (unsigned int wheel_size, monotonic_clock::duration granularity, Error_Logger error_logger, Actor_Exception_Handler exception_handler)
 Constructor with all parameters. More...
 
- Public Member Functions inherited from timertt::details::manager_impl_template< details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler > >
 manager_impl_template (Args &&... args)
 Constructor with all parameters. More...
 
void reset ()
 Reset all timers and return manager to the initial state. More...
 
void process_expired_timers ()
 Perform processing of expired timers. More...
 
std::tuple< bool, monotonic_clock::time_point > nearest_time_point ()
 Get the time for next process_expired_timers invocation. More...
 
monotonic_clock::duration timeout_before_nearest_timer (Duration default_timeout)
 Get the sleeping time before the earlist timer expiration. More...
 
- Public Member Functions inherited from timertt::details::basic_methods_impl_mixin< details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >, consumer_type::manager >
 basic_methods_impl_mixin (Args &&... args)
 Constructor with all parameters. More...
 
timer_holder allocate ()
 Allocate of new timer object. More...
 
void activate (timer_holder timer, Duration_1 pause, timer_action action)
 Activate timer and schedule it for execution. More...
 
void activate (scoped_timer_object &timer, Duration_1 pause, timer_action action)
 Activate a scoped timer and schedule it for execution. More...
 
void activate (Duration_1 pause, timer_action action)
 Activate timer and schedule it for execution. More...
 
void activate (timer_holder timer, Duration_1 pause, Duration_2 period, timer_action action)
 Activate timer and schedule it for execution. More...
 
void activate (scoped_timer_object &timer, Duration_1 pause, Duration_2 period, timer_action action)
 Activate a scoped timer and schedule it for execution. More...
 
void activate (Duration_1 pause, Duration_2 period, timer_action action)
 Activate timer and schedule it for execution. More...
 
void reschedule (timer_holder timer, Duration_1 pause, timer_action action)
 Perform an attempt to reschedule a timer. More...
 
void reschedule (timer_holder timer, Duration_1 pause, Duration_2 period, timer_action action)
 Perform an attempt to reschedule a timer. More...
 
void deactivate (timer_holder timer)
 Deactivate timer and remove it from the list. More...
 
void deactivate (scoped_timer_object &timer)
 Deactivate timer and remove it from the list. More...
 
timer_quantities get_timer_quantities ()
 Count of timers of various types. More...
 
bool empty ()
 Check for emptiness. More...
 

Private Types

using base_type = details::manager_impl_template< details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler > >
 Shorthand for base type. More...
 

Additional Inherited Members

- Public Types inherited from timertt::details::basic_methods_impl_mixin< details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >, consumer_type::manager >
using thread_safety = typename details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler > ::thread_safety
 A typedef for thread safety type from Engine. More...
 
using timer_action = typename details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler > ::timer_action
 An alias for timer_action type. More...
 
using scoped_timer_object = typename details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler > ::scoped_timer_object
 An alias for scoped timer objects. More...
 
using timer_holder = timer_object_holder< typename details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler > ::thread_safety >
 Shorthand for timer objects' smart pointer. More...
 
- Protected Attributes inherited from timertt::details::basic_methods_impl_mixin< details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >, consumer_type::manager >
details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler > m_engine
 Actual timer engine instance. More...
 

Detailed Description

template<typename Thread_Safety, typename Timer_Action = default_timer_action_type, typename Error_Logger = default_error_logger, typename Actor_Exception_Handler = default_actor_exception_handler>
class timertt::timer_wheel_manager_template< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >

A timer wheel manager template.

Note
Please see description of details::timer_wheel_engine for the details of the timer wheel mechanism.
Template Parameters
Thread_SafetyThread-safety indicator. Must be timertt::thread_safety::unsafe or timertt::thread_safety::safe.
Timer_Actiontype of functor to perform an user-defined action when timer expires. This must be Moveable and MoveConstructible type.
Error_Loggertype of logger for errors detected during timer handling. Interface for error logger is defined by default_error_logger class.
Actor_Exception_Handlertype of handler for dealing with exceptions thrown from timer actors. Interface for exception handler is defined by default_actor_exception_handler.
Since
v.1.1.0

Member Typedef Documentation

◆ base_type

template<typename Thread_Safety , typename Timer_Action = default_timer_action_type, typename Error_Logger = default_error_logger, typename Actor_Exception_Handler = default_actor_exception_handler>
using timertt::timer_wheel_manager_template< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >::base_type = details::manager_impl_template< details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler > >
private

Shorthand for base type.

Constructor & Destructor Documentation

◆ timer_wheel_manager_template() [1/3]

template<typename Thread_Safety , typename Timer_Action = default_timer_action_type, typename Error_Logger = default_error_logger, typename Actor_Exception_Handler = default_actor_exception_handler>
timertt::timer_wheel_manager_template< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >::timer_wheel_manager_template ( )
inline

Default constructor.

◆ timer_wheel_manager_template() [2/3]

template<typename Thread_Safety , typename Timer_Action = default_timer_action_type, typename Error_Logger = default_error_logger, typename Actor_Exception_Handler = default_actor_exception_handler>
timertt::timer_wheel_manager_template< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >::timer_wheel_manager_template ( unsigned int  wheel_size,
monotonic_clock::duration  granularity 
)
inline

Constructor with wheel size and granularity parameters.

Parameters
wheel_sizeSize of the wheel.
granularitySize of time step for the timer_wheel.

◆ timer_wheel_manager_template() [3/3]

template<typename Thread_Safety , typename Timer_Action = default_timer_action_type, typename Error_Logger = default_error_logger, typename Actor_Exception_Handler = default_actor_exception_handler>
timertt::timer_wheel_manager_template< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >::timer_wheel_manager_template ( unsigned int  wheel_size,
monotonic_clock::duration  granularity,
Error_Logger  error_logger,
Actor_Exception_Handler  exception_handler 
)
inline

Constructor with all parameters.

Parameters
wheel_sizeSize of the wheel.
granularitySize of time step for the timer_wheel.
error_loggerAn error logger for timer thread.
exception_handlerAn actor exception handler for timer thread.

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