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;
178 std::chrono::steady_clock::duration m_duration;
193 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<float>(amount)));
208 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<int32_t, std::milli>(amount)));
223 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<int64_t, std::micro>(amount)));
327 return rhs.
addTo(lhs);
353 return rhs.
subTo(lhs);
356 #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:222
constexpr int32_t asMilliseconds() const
Return the time value as a number of milliseconds.
Definition: Time.h:125
static constexpr Time zero()
Definition: Time.h:173
constexpr Time milliseconds(int32_t amount)
Construct a time value from a number of milliseconds.
Definition: Time.h:207
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:287
Time operator-=(Time &rhs, Time lhs)
Substraction and assignment.
Definition: Time.h:352
constexpr bool operator<(Time rhs, Time lhs)
Lesser than operator.
Definition: Time.h:261
constexpr bool operator>(Time rhs, Time lhs)
Greater than operator.
Definition: Time.h:274
constexpr Time operator-(Time rhs, Time lhs)
Substraction of two times.
Definition: Time.h:339
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:313
constexpr bool operator==(Time rhs, Time lhs)
Equality operator.
Definition: Time.h:235
constexpr bool operator!=(Time rhs, Time lhs)
Inequality operator.
Definition: Time.h:248
constexpr bool operator>=(Time rhs, Time lhs)
Greater or equal than operator.
Definition: Time.h:300
static const Time Zero
Definition: Time.h:171
Time operator+=(Time &rhs, Time lhs)
Addition and assignement.
Definition: Time.h:326
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:192
constexpr Time(std::chrono::steady_clock::duration duration)
Constructor with a duration.
Definition: Time.h:101