32 #include "SerializationFwd.h" 35 #ifndef DOXYGEN_SHOULD_SKIP_THIS 73 : m_duration(
std::chrono::steady_clock::duration::zero())
83 constexpr
explicit Time(std::chrono::steady_clock::duration duration)
84 : m_duration(duration)
97 return std::chrono::duration_cast<std::chrono::duration<float>>(m_duration).count();
108 return std::chrono::duration_cast<std::chrono::duration<int32_t, std::milli>>(m_duration).count();
119 return std::chrono::duration_cast<std::chrono::duration<int64_t, std::micro>>(m_duration).count();
127 constexpr std::chrono::steady_clock::duration
asDuration()
const {
138 m_duration += other.m_duration;
149 m_duration -= other.m_duration;
172 std::chrono::steady_clock::duration m_duration;
187 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<float>(amount)));
202 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<int32_t, std::milli>(amount)));
217 return Time(std::chrono::duration_cast<std::chrono::steady_clock::duration>(std::chrono::duration<int64_t, std::micro>(amount)));
232 constexpr
gf::Time operator"" _seconds(
long double amount) {
233 return gf::seconds(static_cast<float>(amount));
246 constexpr
gf::Time operator"" _milliseconds(
unsigned long long int amount) {
247 return gf::milliseconds(static_cast<int32_t>(amount));
260 constexpr
gf::Time operator"" _microseconds(
unsigned long long int amount) {
261 return gf::microseconds(static_cast<int64_t>(amount));
368 return rhs.
addTo(lhs);
394 return rhs.
subTo(lhs);
409 #ifndef DOXYGEN_SHOULD_SKIP_THIS Time & subTo(Time other)
Substract another time.
Definition: Time.h:148
constexpr Time microseconds(int64_t amount)
Construct a time value from a number of microseconds.
Definition: Time.h:216
A deserializer from a binary file.
Definition: Serialization.h:151
constexpr int32_t asMilliseconds() const
Return the time value as a number of milliseconds.
Definition: Time.h:107
static constexpr Time zero()
Get a time of zero.
Definition: Time.h:167
constexpr Time milliseconds(int32_t amount)
Construct a time value from a number of milliseconds.
Definition: Time.h:201
constexpr float asSeconds() const
Return the time value as a number of seconds.
Definition: Time.h:96
constexpr Time()
Default constructor.
Definition: Time.h:72
constexpr bool operator<=(Time rhs, Time lhs)
Lesser or equal operator.
Definition: Time.h:328
Time operator-=(Time &rhs, Time lhs)
Substraction and assignment.
Definition: Time.h:393
constexpr bool operator<(Time rhs, Time lhs)
Lesser than operator.
Definition: Time.h:302
constexpr bool operator>(Time rhs, Time lhs)
Greater than operator.
Definition: Time.h:315
constexpr Time operator-(Time rhs, Time lhs)
Substraction of two times.
Definition: Time.h:380
Represents a time value.
Definition: Time.h:65
constexpr std::chrono::steady_clock::duration asDuration() const
Return the time value as a duration.
Definition: Time.h:127
constexpr int64_t asMicroseconds() const
Return the time value as a number of microseconds.
Definition: Time.h:118
A serializer to a binary file.
Definition: Serialization.h:43
The namespace for gf classes.
Definition: Action.h:35
constexpr Time operator+(Time rhs, Time lhs)
Addition of two times.
Definition: Time.h:354
constexpr bool operator==(Time rhs, Time lhs)
Equality operator.
Definition: Time.h:276
constexpr bool operator!=(Time rhs, Time lhs)
Inequality operator.
Definition: Time.h:289
constexpr bool operator>=(Time rhs, Time lhs)
Greater or equal than operator.
Definition: Time.h:341
static const Time Zero
A time of zero as a variable.
Definition: Time.h:159
Time operator+=(Time &rhs, Time lhs)
Addition and assignement.
Definition: Time.h:367
Time & addTo(Time other)
Add another time.
Definition: Time.h:137
constexpr Time seconds(float amount)
Construct a time value from a number of seconds.
Definition: Time.h:186
constexpr Time(std::chrono::steady_clock::duration duration)
Constructor with a duration.
Definition: Time.h:83