31 #include "Portability.h" 32 #include "SerializationFwd.h" 35 #ifndef DOXYGEN_SHOULD_SKIP_THIS 82 : m_duration(
std::chrono::steady_clock::duration::zero())
95 Time& operator=(
const Time&) =
default;
102 constexpr
explicit Time(std::chrono::steady_clock::duration duration)
103 : m_duration(duration)
116 return std::chrono::duration_cast<std::chrono::duration<float>>(m_duration).count();
127 return std::chrono::duration_cast<std::chrono::duration<int32_t, std::milli>>(m_duration).count();
138 return std::chrono::duration_cast<std::chrono::duration<int64_t, std::micro>>(m_duration).count();
146 constexpr std::chrono::steady_clock::duration
asDuration()
const {
157 m_duration += other.m_duration;
168 m_duration -= other.m_duration;
191 std::chrono::steady_clock::duration m_duration;
206 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<float>(amount)));
221 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<int32_t, std::milli>(amount)));
236 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<int64_t, std::micro>(amount)));
340 return rhs.
addTo(lhs);
366 return rhs.
subTo(lhs);
381 #ifndef DOXYGEN_SHOULD_SKIP_THIS Time & subTo(Time other)
Substract another time.
Definition: Time.h:167
constexpr Time microseconds(int64_t amount)
Construct a time value from a number of microseconds.
Definition: Time.h:235
A deserializer from a binary file.
Definition: Serialization.h:153
constexpr int32_t asMilliseconds() const
Return the time value as a number of milliseconds.
Definition: Time.h:126
static constexpr Time zero()
Get a time of zero.
Definition: Time.h:186
constexpr Time milliseconds(int32_t amount)
Construct a time value from a number of milliseconds.
Definition: Time.h:220
constexpr float asSeconds() const
Return the time value as a number of seconds.
Definition: Time.h:115
constexpr Time()
Default constructor.
Definition: Time.h:81
constexpr bool operator<=(Time rhs, Time lhs)
Lesser or equal operator.
Definition: Time.h:300
Time operator-=(Time &rhs, Time lhs)
Substraction and assignment.
Definition: Time.h:365
constexpr bool operator<(Time rhs, Time lhs)
Lesser than operator.
Definition: Time.h:274
constexpr bool operator>(Time rhs, Time lhs)
Greater than operator.
Definition: Time.h:287
constexpr Time operator-(Time rhs, Time lhs)
Substraction of two times.
Definition: Time.h:352
Represents a time value.
Definition: Time.h:74
constexpr std::chrono::steady_clock::duration asDuration() const
Return the time value as a duration.
Definition: Time.h:146
constexpr int64_t asMicroseconds() const
Return the time value as a number of microseconds.
Definition: Time.h:137
A serializer to a binary file.
Definition: Serialization.h:45
The namespace for gf classes.
Definition: Action.h:35
constexpr Time operator+(Time rhs, Time lhs)
Addition of two times.
Definition: Time.h:326
constexpr bool operator==(Time rhs, Time lhs)
Equality operator.
Definition: Time.h:248
constexpr bool operator!=(Time rhs, Time lhs)
Inequality operator.
Definition: Time.h:261
constexpr bool operator>=(Time rhs, Time lhs)
Greater or equal than operator.
Definition: Time.h:313
static const Time Zero
A time of zero as a variable.
Definition: Time.h:178
Time operator+=(Time &rhs, Time lhs)
Addition and assignement.
Definition: Time.h:339
Time & addTo(Time other)
Add another time.
Definition: Time.h:156
constexpr Time seconds(float amount)
Construct a time value from a number of seconds.
Definition: Time.h:205
constexpr Time(std::chrono::steady_clock::duration duration)
Constructor with a duration.
Definition: Time.h:102