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
A deserializer from a binary file.
Definition: Serialization.h:151
GF_CORE_API Deserializer & operator|(Deserializer &ar, Time &time)
Deserialize a time.
A serializer to a binary file.
Definition: Serialization.h:43
GF_CORE_API Serializer & operator|(Serializer &ar, Time time)
Serialize a time.
Represents a time value.
Definition: Time.h:65
constexpr bool operator!=(Time rhs, Time lhs)
Inequality operator.
Definition: Time.h:289
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
constexpr int32_t asMilliseconds() const
Return the time value as a number of milliseconds.
Definition: Time.h:107
constexpr Time()
Default constructor.
Definition: Time.h:72
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 bool operator<=(Time rhs, Time lhs)
Lesser or equal operator.
Definition: Time.h:328
constexpr Time operator+(Time rhs, Time lhs)
Addition of two times.
Definition: Time.h:354
constexpr float asSeconds() const
Return the time value as a number of seconds.
Definition: Time.h:96
constexpr bool operator>=(Time rhs, Time lhs)
Greater or equal than operator.
Definition: Time.h:341
constexpr std::chrono::steady_clock::duration asDuration() const
Return the time value as a duration.
Definition: Time.h:127
Time operator-=(Time &rhs, Time lhs)
Substraction and assignment.
Definition: Time.h:393
constexpr Time operator-(Time rhs, Time lhs)
Substraction of two times.
Definition: Time.h:380
constexpr bool operator==(Time rhs, Time lhs)
Equality operator.
Definition: Time.h:276
constexpr bool operator<(Time rhs, Time lhs)
Lesser than operator.
Definition: Time.h:302
constexpr int64_t asMicroseconds() const
Return the time value as a number of microseconds.
Definition: Time.h:118
constexpr Time microseconds(int64_t amount)
Construct a time value from a number of microseconds.
Definition: Time.h:216
constexpr Time(std::chrono::steady_clock::duration duration)
Constructor with a duration.
Definition: Time.h:83
constexpr Time milliseconds(int32_t amount)
Construct a time value from a number of milliseconds.
Definition: Time.h:201
static constexpr Time zero()
Get a time of zero.
Definition: Time.h:167
constexpr bool operator>(Time rhs, Time lhs)
Greater than operator.
Definition: Time.h:315
Time & subTo(Time other)
Substract another time.
Definition: Time.h:148
The namespace for gf classes.