SObjectizer  5.7
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
3rd_party/timertt/all.hpp File Reference

All project's stuff. More...

#include <array>
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <cstdint>
#include <cstdlib>
#include <ctime>
#include <functional>
#include <iostream>
#include <map>
#include <memory>
#include <mutex>
#include <sstream>
#include <stdexcept>
#include <string>
#include <thread>
#include <tuple>
#include <unordered_map>
#include <vector>

Go to the source code of this file.

Classes

struct  timertt::thread_safety
 Container for thread safety flags. More...
 
struct  timertt::thread_safety::unsafe
 Indicator for not-thread-safe implementation. More...
 
struct  timertt::thread_safety::safe
 Indicator for thread-safe implemetation. More...
 
struct  timertt::threading_traits< Thread_Safety >
 Container for thread-safety-specific type declarations. More...
 
struct  timertt::threading_traits< thread_safety::unsafe >
 Specialization for not-thread-safe case. More...
 
struct  timertt::threading_traits< thread_safety::safe >
 Specialization for thread-safe case. More...
 
struct  timertt::timer_object< Thread_Safety >
 Base type for timer demands. More...
 
class  timertt::scoped_timer_object_holder< Actual_Object >
 A special wrapper to be used to hold an actual timer object which is not allocated dynamically. More...
 
class  timertt::timer_object_holder< Thread_Safety >
 An intrusive smart pointer to timer demand. More...
 
struct  timertt::default_error_logger
 Class of default error logger. More...
 
struct  timertt::default_actor_exception_handler
 Class of default handler for exceptions thrown from timer actors. More...
 
struct  timertt::timer_quantities
 Information about quantities of various timer types. More...
 
class  timertt::details::buffer_allocated_object< T >
 A special storage to be used for holding non-default constructible objects which are created by demand. More...
 
class  timertt::details::timer_action_holder< Action_Type >
 A special storage for holding timer actions. More...
 
class  timertt::details::timer_action_holder< default_timer_action_type >
 
class  timertt::details::engine_common< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >
 A common part for all timer engines. More...
 
struct  timertt::details::timer_wheel_engine_defaults
 Container for static method with default values for timer_wheel engine. More...
 
class  timertt::details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >
 A engine for timer wheel mechanism. More...
 
struct  timertt::details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >::timer_type
 Type of wheel timer. More...
 
struct  timertt::details::timer_wheel_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >::wheel_item
 Type of wheel's item. More...
 
struct  timertt::details::timer_list_engine_defaults
 Container for static method with default values for timer_list engine. More...
 
class  timertt::details::timer_list_engine< Thread_Safety, Time_Action, Error_Logger, Actor_Exception_Handler >
 An engine for timer list mechanism. More...
 
struct  timertt::details::timer_list_engine< Thread_Safety, Time_Action, Error_Logger, Actor_Exception_Handler >::timer_type
 Type of list timer. More...
 
struct  timertt::details::timer_heap_engine_defaults
 Container for static method with default values for timer_heap engine. More...
 
class  timertt::details::timer_heap_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >
 An engine for timer heap mechanism. More...
 
struct  timertt::details::timer_heap_engine< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >::timer_type
 Type of heap timer. More...
 
struct  timertt::details::thread_unsafe_manager_mixin
 A mixin which must be used as base class for not-thread-safe timer managers. More...
 
class  timertt::details::thread_unsafe_manager_mixin::lock_guard
 A empty class for an object's lock emulation. More...
 
struct  timertt::details::thread_safe_manager_mixin
 A mixin which must be used as base class for thread-safe timer managers. More...
 
class  timertt::details::thread_safe_manager_mixin::lock_guard
 A special wrapper around actual std::unique_lock. More...
 
struct  timertt::details::thread_mixin
 A mixin which must be used as base class for timer threads. More...
 
class  timertt::details::thread_mixin::lock_guard
 A special wrapper around actual std::unique_lock. More...
 
struct  timertt::details::consumer_type
 A type-container for types of engine-consumers. More...
 
struct  timertt::details::consumer_type::manager
 Indicator that an engine will be owned by timer manager. More...
 
struct  timertt::details::consumer_type::thread
 Indicator that an engine will be owned by timer thread. More...
 
struct  timertt::details::mixin_selector< Thread_Safety, Consumer >
 A selector of actual mixin type for timer manager or timer thread. More...
 
struct  timertt::details::mixin_selector< thread_safety::unsafe, consumer_type::manager >
 A selector of actual mixin type for not-thread-safe timer manager. More...
 
struct  timertt::details::mixin_selector< thread_safety::safe, consumer_type::manager >
 A selector of actual mixin type for thread-safe timer manager. More...
 
struct  timertt::details::mixin_selector< thread_safety::safe, consumer_type::thread >
 A selector of actual mixin type for timer thread. More...
 
class  timertt::details::basic_methods_impl_mixin< Engine, Consumer >
 A implementation of basic methods for timer managers and timer threads. More...
 
class  timertt::details::manager_impl_template< Engine >
 Template-based implementation of timer manager. More...
 
class  timertt::details::thread_impl_template< Engine >
 Template-based implementation of timer thread. More...
 
class  timertt::timer_wheel_thread_template< Timer_Action, Error_Logger, Actor_Exception_Handler >
 A timer wheel thread template. More...
 
class  timertt::timer_wheel_manager_template< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >
 A timer wheel manager template. More...
 
class  timertt::timer_list_thread_template< Timer_Action, Error_Logger, Actor_Exception_Handler >
 A timer list thread template. More...
 
class  timertt::timer_list_manager_template< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >
 A timer list thread template. More...
 
class  timertt::timer_heap_thread_template< Timer_Action, Error_Logger, Actor_Exception_Handler >
 A timer heap thread template. More...
 
class  timertt::timer_heap_manager_template< Thread_Safety, Timer_Action, Error_Logger, Actor_Exception_Handler >
 A timer heap manager template. More...
 

Namespaces

 timertt
 Top-level project's namespace.
 
 timertt::details
 An internal namespace with implementation details.
 

Macros

#define TIMERTT_ALIGNAS_WORKAROUND(T)   alignas(T)
 
#define TIMERTT_NOEXCEPT   noexcept
 
#define TIMERTT_HAS_NOEXCEPT   1
 
#define TIMERTT_VERSION   1002003u
 The current version of timertt. More...
 

Typedefs

typedef std::function< void() > timertt::default_timer_action_type
 Defaulf type of timer action. More...
 
typedef std::chrono::steady_clock timertt::monotonic_clock
 Type of clock used by all threads. More...
 
using timertt::default_timer_wheel_thread = timer_wheel_thread_template< default_timer_action_type, default_error_logger, default_actor_exception_handler >
 Alias for timer_wheel_thread_template with the default parameters. More...
 
using timertt::default_timer_list_thread = timer_list_thread_template< default_timer_action_type, default_error_logger, default_actor_exception_handler >
 Alias for timer_list_thread_template with the default parameters. More...
 
using timertt::default_timer_heap_thread = timer_heap_thread_template< default_timer_action_type, default_error_logger, default_actor_exception_handler >
 Alias for timer_heap_thread_template with the default parameters. More...
 

Enumerations

enum  timertt::details::timer_status : unsigned int { timertt::details::timer_status::deactivated, timertt::details::timer_status::active, timertt::details::timer_status::wait_for_execution, timertt::details::timer_status::wait_for_deactivation }
 Status of timer. More...
 
enum  timertt::details::timer_kind { timertt::details::timer_kind::single_shot, timertt::details::timer_kind::periodic }
 Type of the timer (single-shot or periodic). More...
 

Functions

template<typename Lambda >
void timertt::details::invoke_noexcept_code_block (Lambda &&lambda) noexcept
 

Detailed Description

All project's stuff.

Macro Definition Documentation

◆ TIMERTT_ALIGNAS_WORKAROUND

#define TIMERTT_ALIGNAS_WORKAROUND (   T)    alignas(T)

◆ TIMERTT_HAS_NOEXCEPT

#define TIMERTT_HAS_NOEXCEPT   1

◆ TIMERTT_NOEXCEPT

#define TIMERTT_NOEXCEPT   noexcept

◆ TIMERTT_VERSION

#define TIMERTT_VERSION   1002003u

The current version of timertt.

Please note that this macro was added only in version 1.2.1. It means that it is better to check presense of TIMERTT_VERSION and only then try to check its value:

#include <timertt/all.hpp>
#if defined(TIMERTT_VERSION)
#if TIMERTT_VERSION > 1002002
#endif
#endif

The value of TIMERTT_VERSION has YXXXZZZ format in decimal. For example: 1002001 or 1003014. 'Y' means the major version number (e.g. 1 for 1.2.1), 'XXX' means minor version number (e.g. 002 for 1.2.1) and 'ZZZ' means patch number (e.g. 001 for 1.2.1). It means that version 1.2.1 will be represented as 1002001 and 1.3.14 will be represented as 1003014.

Since
v.1.2.1