11 template <
typename UnderlyingClock = clock_
object_adapter< std::chrono::steady_clock > >
17 using rep =
typename underlying_clock_type::rep;
18 using period =
typename underlying_clock_type::period;
19 using duration = std::chrono::duration< rep, period >;
20 using time_point = std::chrono::time_point< sequencer_clock >;
22 static_assert( underlying_clock_type::is_steady,
"Underlying clock must be steady" );
27 : underlying_clock_( underlying_clock )
40 return time_point{elapsed_ + ( underlying_clock_.now() - start_time_ )};
47 elapsed_ = duration::zero();
55 start_time_ = underlying_clock_.now();
64 elapsed_ += underlying_clock_.now() - start_time_;
70 UnderlyingClock underlying_clock_;
71 bool is_running_ =
false;
73 duration elapsed_ = duration::zero();
void reset() noexcept
Definition: sequencer_clock.hpp:45
void start() noexcept
Definition: sequencer_clock.hpp:51
bool is_running() const noexcept
Definition: sequencer_clock.hpp:31
typename underlying_clock_type::rep rep
Definition: sequencer_clock.hpp:17
static constexpr bool is_steady
Definition: sequencer_clock.hpp:24
std::chrono::duration< rep, period > duration
Definition: sequencer_clock.hpp:19
Definition: sequencer_clock.hpp:12
sequencer_clock(const underlying_clock_type &underlying_clock) noexcept
Definition: sequencer_clock.hpp:26
typename underlying_clock_type::period period
Definition: sequencer_clock.hpp:18
std::decay_t< UnderlyingClock > underlying_clock_type
Definition: sequencer_clock.hpp:15
std::chrono::time_point< sequencer_clock > time_point
Definition: sequencer_clock.hpp:20
void stop() noexcept
Definition: sequencer_clock.hpp:60
time_point now() const noexcept
Definition: sequencer_clock.hpp:36
typename underlying_clock_type::time_point underlying_time_point
Definition: sequencer_clock.hpp:16
Definition: chrono_adapter.hpp:5