35 using Clock = std::chrono::steady_clock;
37 using Value = std::chrono::time_point<Clock>;
56 std::this_thread::sleep_for(d);
121 _value = Clock::now();
126 std::this_thread::sleep_until(_value);
134 return _value.time_since_epoch();
142 return std::chrono::duration_cast<std::chrono::duration<double>>(_value.time_since_epoch()).count();
150 return std::chrono::duration_cast<std::chrono::milliseconds>(_value.time_since_epoch()).
count();
158 return std::chrono::duration_cast<std::chrono::microseconds>(_value.time_since_epoch()).
count();
166 return std::chrono::duration_cast<std::chrono::nanoseconds>(_value.time_since_epoch()).
count();
174 return std::chrono::duration_cast<std::chrono::duration<double>>(Clock::now() - _value).count();
182 return std::chrono::duration_cast<std::chrono::milliseconds>(Clock::now() - _value).
count();
190 return std::chrono::duration_cast<std::chrono::microseconds>(Clock::now() - _value).
count();
198 return std::chrono::duration_cast<std::chrono::nanoseconds>(Clock::now() - _value).
count();
Time duration with nanosecond precision.
Definition duration.h:26
Dynamic array container wrapping std::vector.
Definition list.h:40
size_t count(const T &value) const
Returns the number of occurrences of value.
Definition list.h:629
Encoding-aware string class with copy-on-write semantics.
Definition string.h:35
static String number(int8_t value, int base=10, int padding=0, char padchar=' ', bool addPrefix=false)
Converts a numeric value to its String representation.
A monotonic timestamp based on std::chrono::steady_clock.
Definition timestamp.h:32
TimeStamp()
Constructs a default (epoch) TimeStamp.
Definition timestamp.h:69
double seconds() const
Returns the time since epoch in seconds as a double.
Definition timestamp.h:141
int64_t microseconds() const
Returns the time since epoch in microseconds.
Definition timestamp.h:157
Clock::duration Duration
Duration type derived from the clock.
Definition timestamp.h:39
std::chrono::steady_clock Clock
Underlying clock type.
Definition timestamp.h:35
void sleepUntil() const
Sleeps the current thread until this timestamp is reached.
Definition timestamp.h:125
int64_t elapsedMicroseconds() const
Returns the elapsed time since this timestamp in microseconds.
Definition timestamp.h:189
TimeStamp & operator-=(const Duration &duration)
Moves the timestamp back by the given duration.
Definition timestamp.h:97
static TimeStamp now()
Returns a TimeStamp representing the current time.
Definition timestamp.h:64
int64_t nanoseconds() const
Returns the time since epoch in nanoseconds.
Definition timestamp.h:165
String toString() const
Returns a string representation of the timestamp in seconds.
Definition timestamp.h:205
std::chrono::time_point< Clock > Value
Time point value type.
Definition timestamp.h:37
void update()
Updates the timestamp to the current time.
Definition timestamp.h:120
Duration timeSinceEpoch() const
Returns the duration since the clock's epoch.
Definition timestamp.h:133
TimeStamp & operator+=(const Duration &duration)
Advances the timestamp by the given duration.
Definition timestamp.h:87
static Duration secondsToDuration(double val)
Converts a floating-point number of seconds to a Duration.
Definition timestamp.h:46
TimeStamp(const Value &v)
Constructs a TimeStamp from the given time point value.
Definition timestamp.h:75
int64_t milliseconds() const
Returns the time since epoch in milliseconds.
Definition timestamp.h:149
Value value() const
Returns the underlying time point value.
Definition timestamp.h:115
int64_t elapsedMilliseconds() const
Returns the elapsed time since this timestamp in milliseconds.
Definition timestamp.h:181
int64_t elapsedNanoseconds() const
Returns the elapsed time since this timestamp in nanoseconds.
Definition timestamp.h:197
double elapsedSeconds() const
Returns the elapsed time since this timestamp in seconds.
Definition timestamp.h:173
void setValue(const Value &v)
Sets the underlying time point value.
Definition timestamp.h:106
static void sleep(const Duration &d)
Sleeps the current thread for the given duration.
Definition timestamp.h:55
#define PROMEKI_NAMESPACE_BEGIN
Starts a promeki namespace block.
Definition namespace.h:14
#define PROMEKI_NAMESPACE_END
Ends a promeki namespace block.
Definition namespace.h:19
TimeStamp operator-(const TimeStamp &ts, const TimeStamp::Duration &duration)
Returns a new TimeStamp moved back by the given duration.
Definition timestamp.h:236
TimeStamp operator+(const TimeStamp &ts, const TimeStamp::Duration &duration)
Returns a new TimeStamp advanced by the given duration.
Definition timestamp.h:224