diff options
author | HampusM <hampus@hampusmat.com> | 2022-03-14 10:24:36 +0100 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2022-03-14 10:24:36 +0100 |
commit | a119e6ca70ffab14f0a70908fa3eeb83b41bb5ab (patch) | |
tree | 51b72774694f5e1aac0bb17fc1a5e528dbad9b44 /src/common/time.hpp | |
parent | 6b5754655f78a7f93b756ff902ce9fd80d9dc4ec (diff) |
refactor: rename std to common
Diffstat (limited to 'src/common/time.hpp')
-rw-r--r-- | src/common/time.hpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/common/time.hpp b/src/common/time.hpp new file mode 100644 index 0000000..8efbd28 --- /dev/null +++ b/src/common/time.hpp @@ -0,0 +1,60 @@ +#pragma once + +#include <stdint.h> + +constexpr double MICROS_TO_SECS = 0.000001; +constexpr double MICROS_TO_MILLIS = 0.001; + +namespace common +{ + + /** + * A representation of time. + */ + class Time + { + public: + /** + * A representation of time. + * + * @param time_micros Time in microseconds + */ + explicit Time(uint64_t time_micros); + + /** + * Updates the time to the current time. + */ + void update(); + + /** + * Returns the difference between two points in time. + * + * @param prev_time A previous point in time + */ + Time diff(Time prev_time) const; + + /** + * Returns the time in seconds. + */ + double secs() const; + + /** + * Returns the time in milliseconds. + */ + double millisecs() const; + + /** + * Returns the time in microseconds. + */ + uint64_t microsecs() const; + + private: + uint64_t _time_micros; + }; + + /** + * Returns a time object for the time since the program started. + */ + Time time_now(); + +} // namespace common |