10 #define CLUON_TIME_HPP 12 #include "cluon/cluonDataStructures.hpp" 24 cluon::data::TimeStamp ts;
25 ts.seconds(static_cast<int32_t>(tp / static_cast<int64_t>(1000 * 1000))).microseconds(static_cast<int32_t>(tp % static_cast<int64_t>(1000 * 1000)));
34 return static_cast<int64_t
>(tp.seconds()) * static_cast<int64_t>(1000 * 1000) +
static_cast<int64_t
>(tp.microseconds());
42 inline int64_t
deltaInMicroseconds(
const cluon::data::TimeStamp &AFTER,
const cluon::data::TimeStamp &BEFORE) noexcept {
50 inline cluon::data::TimeStamp
convert(
const std::chrono::system_clock::time_point &tp) noexcept {
51 cluon::data::TimeStamp timeStamp;
54 typedef std::chrono::duration<int32_t> seconds_type;
55 typedef std::chrono::duration<int64_t, std::micro> microseconds_type;
57 auto duration = tp.time_since_epoch();
58 seconds_type s = std::chrono::duration_cast<seconds_type>(duration);
59 microseconds_type us = std::chrono::duration_cast<microseconds_type>(duration);
60 microseconds_type partial_us = us - std::chrono::duration_cast<microseconds_type>(s);
62 timeStamp.seconds(s.count()).microseconds(static_cast<int32_t>(partial_us.count()));
70 inline cluon::data::TimeStamp
now() noexcept {
cluon::data::TimeStamp now() noexcept
Definition: Time.hpp:70
int64_t toMicroseconds(const cluon::data::TimeStamp &tp) noexcept
Definition: Time.hpp:33
cluon::data::TimeStamp fromMicroseconds(int64_t tp) noexcept
Definition: Time.hpp:23
int64_t deltaInMicroseconds(const cluon::data::TimeStamp &AFTER, const cluon::data::TimeStamp &BEFORE) noexcept
Definition: Time.hpp:42
cluon::data::TimeStamp convert(const std::chrono::system_clock::time_point &tp) noexcept
Definition: Time.hpp:50