/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
library/cpp/time_provider/time_provider.cpp
46 строк
1 KB
snaury
Support monotonic boot time with suspend awareness
16 май 2023, 13:43
16 май 2023, 13:43
273d011
Код
Авторство
О чём код?
#include "time_provider.h" class TDefaultTimeProvider: public ITimeProvider { public: TInstant Now() override { return TInstant::Now(); } }; class TDeterministicTimeProvider: public ITimeProvider { public: TDeterministicTimeProvider(ui64 seed) { Value = TInstant::Seconds(seed); } TInstant Now() override { return Value; } private: TInstant Value; }; TIntrusivePtr<ITimeProvider> CreateDefaultTimeProvider() { return TIntrusivePtr<ITimeProvider>(new TDefaultTimeProvider()); } TIntrusivePtr<ITimeProvider> CreateDeterministicTimeProvider(ui64 seed) { return TIntrusivePtr<ITimeProvider>(new TDeterministicTimeProvider(seed)); } namespace { TIntrusivePtr<ITimeProvider> GlobalTimeProvider; } void TInstantOperator::RegisterProvider(TIntrusivePtr<ITimeProvider> provider) { GlobalTimeProvider = provider; } TInstant TInstantOperator::Now() { if (!GlobalTimeProvider) { return TInstant::Now(); } else { return GlobalTimeProvider->Now(); } }