xref: /openbmc/telemetry/src/interfaces/clock.hpp (revision 8069771c0db62887b72aa2b8c51cd64eb5f99b2d)
1 #pragma once
2 
3 #include <chrono>
4 
5 namespace interfaces
6 {
7 
8 class Clock
9 {
10   public:
11     using duration = std::chrono::steady_clock::time_point::duration;
12     using rep = std::chrono::steady_clock::time_point::rep;
13     using period = std::chrono::steady_clock::time_point::period;
14     using time_point = std::chrono::steady_clock::time_point;
15 
16     virtual ~Clock() = default;
17 
18     virtual time_point now() const noexcept = 0;
19     virtual uint64_t timestamp() const noexcept = 0;
20 };
21 
22 } // namespace interfaces
23