Go to the documentation of this file.
18 #ifndef STATE_ESTIMATION_NODES__TIME_HPP_
19 #define STATE_ESTIMATION_NODES__TIME_HPP_
47 template<TimeReferenceFrame kTimeReferenceFrame>
48 class Time :
public std::chrono::system_clock::time_point
50 using Base = std::chrono::system_clock::time_point;
60 explicit Time(
const Base & time_point)
69 return time_since_epoch() > Time::duration{0LL};
79 return Time{time_1 + time_2.time_since_epoch()};
103 template<
typename IntT,
typename DurationT>
104 friend Time operator+(
const Time & time,
const std::chrono::duration<IntT, DurationT> & duration)
106 return Time{
static_cast<const Base &
>(time) + duration};
130 template<
typename IntT,
typename DurationT>
131 friend Time operator-(
const Time & time,
const std::chrono::duration<IntT, DurationT> & duration)
133 return Time{
static_cast<const Base &
>(time) - duration};
146 #endif // STATE_ESTIMATION_NODES__TIME_HPP_
This file includes common type definition.
Time()=default
Default contructor.
This class describes a time point with respect to some time reference frame.
Definition: time.hpp:48
bool bool8_t
Definition: types.hpp:33
This file defines the lanelet2_map_provider_node class.
Definition: quick_sort.hpp:24
TimeReferenceFrame
This class describes a time reference frame. This is used to define in which clock a particular time ...
Definition: time.hpp:36
Time(const Base &time_point)
Constructs a new instance from a time_point.
Definition: time.hpp:60
common::types::bool8_t is_valid() const noexcept
Determines if the stored time_point is valid.
Definition: time.hpp:67
friend Time operator+(const Time &time, const std::chrono::duration< IntT, DurationT > &duration)
Overload operator +.
Definition: time.hpp:104
friend Time operator-(const Time &time, const std::chrono::duration< IntT, DurationT > &duration)
Overload operator -.
Definition: time.hpp:131
friend Time operator+(Time time_1, const Time &time_2)
Add an operator + for two time points.
Definition: time.hpp:77