diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-02-07 05:07:10 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-02-07 05:07:10 +0000 |
commit | 4ea66f43bbc8814da2ed10814919e07eae032770 (patch) | |
tree | 25bf0ac21f0745fedcbf81f2a5633818e7ae32e9 /storage | |
parent | 9e403aa14c9d00b958de14336a346e60f67d803a (diff) |
Add getSystemTime interface.
Diffstat (limited to 'storage')
4 files changed, 24 insertions, 9 deletions
diff --git a/storage/src/vespa/storageframework/defaultimplementation/clock/fakeclock.h b/storage/src/vespa/storageframework/defaultimplementation/clock/fakeclock.h index 0ca28f8114d..d234f432f2b 100644 --- a/storage/src/vespa/storageframework/defaultimplementation/clock/fakeclock.h +++ b/storage/src/vespa/storageframework/defaultimplementation/clock/fakeclock.h @@ -67,9 +67,13 @@ public: framework::SecondTime getTimeInSeconds() const override { return getTimeInMicros().getSeconds(); } - framework::MonotonicTimePoint getMonotonicTime() const override { + vespalib::system_time getSystemTime() const override { // For simplicity, assume fake monotonic time follows fake wall clock. - return MonotonicTimePoint(std::chrono::microseconds(getTimeInMicros().getTime())); + return vespalib::system_time(std::chrono::microseconds(getTimeInMicros().getTime())); + } + vespalib::steady_time getMonotonicTime() const override { + // For simplicity, assume fake monotonic time follows fake wall clock. + return vespalib::steady_time(std::chrono::microseconds(getTimeInMicros().getTime())); } }; diff --git a/storage/src/vespa/storageframework/defaultimplementation/clock/realclock.cpp b/storage/src/vespa/storageframework/defaultimplementation/clock/realclock.cpp index 0303481feb5..df6115aa416 100644 --- a/storage/src/vespa/storageframework/defaultimplementation/clock/realclock.cpp +++ b/storage/src/vespa/storageframework/defaultimplementation/clock/realclock.cpp @@ -5,27 +5,36 @@ namespace storage::framework::defaultimplementation { -MicroSecTime RealClock::getTimeInMicros() const { +MicroSecTime +RealClock::getTimeInMicros() const { struct timeval mytime; gettimeofday(&mytime, 0); return MicroSecTime(mytime.tv_sec * 1000000llu + mytime.tv_usec); } -MilliSecTime RealClock::getTimeInMillis() const { +MilliSecTime +RealClock::getTimeInMillis() const { struct timeval mytime; gettimeofday(&mytime, 0); return MilliSecTime( mytime.tv_sec * 1000llu + mytime.tv_usec / 1000); } -SecondTime RealClock::getTimeInSeconds() const { +SecondTime +RealClock::getTimeInSeconds() const { struct timeval mytime; gettimeofday(&mytime, 0); return SecondTime(mytime.tv_sec); } -MonotonicTimePoint RealClock::getMonotonicTime() const { - return std::chrono::steady_clock::now(); +vespalib::steady_time +RealClock::getMonotonicTime() const { + return vespalib::steady_clock::now(); +} + +vespalib::system_time +RealClock::getSystemTime() const { + return vespalib::system_clock::now(); } } diff --git a/storage/src/vespa/storageframework/defaultimplementation/clock/realclock.h b/storage/src/vespa/storageframework/defaultimplementation/clock/realclock.h index a4b80a990c9..de176a3e402 100644 --- a/storage/src/vespa/storageframework/defaultimplementation/clock/realclock.h +++ b/storage/src/vespa/storageframework/defaultimplementation/clock/realclock.h @@ -17,7 +17,8 @@ struct RealClock : public Clock { MicroSecTime getTimeInMicros() const override; MilliSecTime getTimeInMillis() const override; SecondTime getTimeInSeconds() const override; - MonotonicTimePoint getMonotonicTime() const override; + vespalib::steady_time getMonotonicTime() const override; + vespalib::system_time getSystemTime() const override; }; } diff --git a/storage/src/vespa/storageframework/generic/clock/clock.h b/storage/src/vespa/storageframework/generic/clock/clock.h index c9b8f652bfe..e1f8419f069 100644 --- a/storage/src/vespa/storageframework/generic/clock/clock.h +++ b/storage/src/vespa/storageframework/generic/clock/clock.h @@ -28,7 +28,8 @@ struct Clock { virtual SecondTime getTimeInSeconds() const = 0; // Time point resolution is intentionally not defined here. - virtual MonotonicTimePoint getMonotonicTime() const = 0; + virtual vespalib::steady_time getMonotonicTime() const = 0; + virtual vespalib::system_time getSystemTime() const = 0; }; } |