31 #include "Portability.h" 34 #ifndef DOXYGEN_SHOULD_SKIP_THIS 81 : m_duration(
std::chrono::steady_clock::duration::zero())
94 Time& operator=(
const Time&) =
default;
101 constexpr
explicit Time(std::chrono::steady_clock::duration duration)
102 : m_duration(duration)
115 return std::chrono::duration_cast<std::chrono::duration<float>>(m_duration).count();
126 return std::chrono::duration_cast<std::chrono::duration<int32_t, std::milli>>(m_duration).count();
137 return std::chrono::duration_cast<std::chrono::duration<int64_t, std::micro>>(m_duration).count();
145 constexpr std::chrono::steady_clock::duration
asDuration()
const {
156 m_duration += other.m_duration;
167 m_duration -= other.m_duration;
190 std::chrono::steady_clock::duration m_duration;
205 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<float>(amount)));
220 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<int32_t, std::milli>(amount)));
235 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<int64_t, std::micro>(amount)));
339 return rhs.
addTo(lhs);
365 return rhs.
subTo(lhs);
368 #ifndef DOXYGEN_SHOULD_SKIP_THIS Time & subTo(Time other)
Substract another time.
Definition: Time.h:166
constexpr Time microseconds(int64_t amount)
Construct a time value from a number of microseconds.
Definition: Time.h:234
constexpr int32_t asMilliseconds() const
Return the time value as a number of milliseconds.
Definition: Time.h:125
static constexpr Time zero()
Get a time of zero.
Definition: Time.h:185
constexpr Time milliseconds(int32_t amount)
Construct a time value from a number of milliseconds.
Definition: Time.h:219
constexpr float asSeconds() const
Return the time value as a number of seconds.
Definition: Time.h:114
constexpr Time()
Default constructor.
Definition: Time.h:80
constexpr bool operator<=(Time rhs, Time lhs)
Lesser or equal operator.
Definition: Time.h:299
Time operator-=(Time &rhs, Time lhs)
Substraction and assignment.
Definition: Time.h:364
constexpr bool operator<(Time rhs, Time lhs)
Lesser than operator.
Definition: Time.h:273
constexpr bool operator>(Time rhs, Time lhs)
Greater than operator.
Definition: Time.h:286
constexpr Time operator-(Time rhs, Time lhs)
Substraction of two times.
Definition: Time.h:351
Represents a time value.
Definition: Time.h:73
constexpr std::chrono::steady_clock::duration asDuration() const
Return the time value as a duration.
Definition: Time.h:145
constexpr int64_t asMicroseconds() const
Return the time value as a number of microseconds.
Definition: Time.h:136
The namespace for gf classes.
Definition: Action.h:34
constexpr Time operator+(Time rhs, Time lhs)
Addition of two times.
Definition: Time.h:325
constexpr bool operator==(Time rhs, Time lhs)
Equality operator.
Definition: Time.h:247
constexpr bool operator!=(Time rhs, Time lhs)
Inequality operator.
Definition: Time.h:260
constexpr bool operator>=(Time rhs, Time lhs)
Greater or equal than operator.
Definition: Time.h:312
static const Time Zero
A time of zero as a variable.
Definition: Time.h:177
Time operator+=(Time &rhs, Time lhs)
Addition and assignement.
Definition: Time.h:338
Time & addTo(Time other)
Add another time.
Definition: Time.h:155
constexpr Time seconds(float amount)
Construct a time value from a number of seconds.
Definition: Time.h:204
constexpr Time(std::chrono::steady_clock::duration duration)
Constructor with a duration.
Definition: Time.h:101