CAF  0.17.3
Public Types | Public Member Functions | List of all members
caf::detail::tick_emitter Class Reference

Converts realtime into a series of ticks, whereas each tick represents a preconfigured timespan. More...

#include <tick_emitter.hpp>

Public Types

using clock_type = std::chrono::steady_clock
 Discrete point in time.
 
using time_point = typename clock_type::time_point
 Discrete point in time.
 
using duration_type = typename time_point::duration
 Difference between two points in time.
 

Public Member Functions

 tick_emitter (time_point now)
 
bool started () const
 Queries whether the start time is non-default constructed.
 
void start (time_point now)
 Configures the start time.
 
void stop ()
 Resets the start time to 0.
 
void interval (duration_type x)
 Configures the time interval per tick.
 
duration_type interval () const
 Returns the time interval per tick.
 
template<class F >
void update (time_point now, F &consumer)
 Advances time and calls consumer for each emitted tick.
 
size_t timeouts (time_point t, std::initializer_list< size_t > periods)
 Advances time by t and returns all triggered periods as bitmask.
 
time_point next_timeout (time_point t, std::initializer_list< size_t > periods)
 Returns the next time point after t that would trigger any of the tick periods, i.e., returns the next time where any of the tick periods triggers tick id % period == 0.
 

Detailed Description

Converts realtime into a series of ticks, whereas each tick represents a preconfigured timespan.

For example, a tick emitter configured with a timespan of 25ms generates a tick every 25ms after starting it.


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