diff options
Diffstat (limited to 'system_wrappers/include/clock.h')
-rw-r--r-- | system_wrappers/include/clock.h | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/system_wrappers/include/clock.h b/system_wrappers/include/clock.h index bcb7feaa7d..271291c214 100644 --- a/system_wrappers/include/clock.h +++ b/system_wrappers/include/clock.h @@ -34,22 +34,23 @@ class RTC_EXPORT Clock { virtual ~Clock() {} // Return a timestamp relative to an unspecified epoch. - // TODO(bugs.webrtc.org/11327): Make this a pure virtual function. - virtual Timestamp CurrentTime() { - return Timestamp::Micros(TimeInMicroseconds()); - } - - // TODO(bugs.webrtc.org/11327): Make the following two methods non-virtual - // or completely remove them. - virtual int64_t TimeInMilliseconds() { return CurrentTime().ms(); } - virtual int64_t TimeInMicroseconds() { return CurrentTime().us(); } + virtual Timestamp CurrentTime() = 0; + int64_t TimeInMilliseconds() { return CurrentTime().ms(); } + int64_t TimeInMicroseconds() { return CurrentTime().us(); } // Retrieve an NTP absolute timestamp (with an epoch of Jan 1, 1900). - virtual NtpTime CurrentNtpTime() = 0; + // TODO(bugs.webrtc.org/11327): Make this non-virtual once + // "WebRTC-SystemIndependentNtpTimeKillSwitch" is removed. + virtual NtpTime CurrentNtpTime() { + return ConvertTimestampToNtpTime(CurrentTime()); + } + int64_t CurrentNtpInMilliseconds() { return CurrentNtpTime().ToMs(); } - // TODO(bugs.webrtc.org/11327): Make the following method non-virtual - // or completely remove it. - virtual int64_t CurrentNtpInMilliseconds() { return CurrentNtpTime().ToMs(); } + // Converts between a relative timestamp returned by this clock, to NTP time. + virtual NtpTime ConvertTimestampToNtpTime(Timestamp timestamp) = 0; + int64_t ConvertTimestampToNtpTimeInMilliseconds(int64_t timestamp_ms) { + return ConvertTimestampToNtpTime(Timestamp::Millis(timestamp_ms)).ToMs(); + } // Returns an instance of the real-time system clock implementation. static Clock* GetRealTimeClock(); @@ -65,7 +66,7 @@ class SimulatedClock : public Clock { // Return a timestamp with an epoch of Jan 1, 1970. Timestamp CurrentTime() override; - NtpTime CurrentNtpTime() override; + NtpTime ConvertTimestampToNtpTime(Timestamp timestamp) override; // Advance the simulated clock with a given number of milliseconds or // microseconds. |