diff options
| author | ivanmorozov <[email protected]> | 2022-11-29 15:52:07 +0300 |
|---|---|---|
| committer | ivanmorozov <[email protected]> | 2022-11-29 15:52:07 +0300 |
| commit | 8ff1738e8665e5c3a1a328104806bcafbc1bd7ae (patch) | |
| tree | 9657e2ea4d923a22e69e954fe11fb77e35bc3271 /library/cpp/time_provider/monotonic_provider.cpp | |
| parent | db99cf88226de50e47bd3acdc0ecfe634ce1d828 (diff) | |
time providers in separated library for future refactoring
Diffstat (limited to 'library/cpp/time_provider/monotonic_provider.cpp')
| -rw-r--r-- | library/cpp/time_provider/monotonic_provider.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/library/cpp/time_provider/monotonic_provider.cpp b/library/cpp/time_provider/monotonic_provider.cpp new file mode 100644 index 00000000000..22937bd8731 --- /dev/null +++ b/library/cpp/time_provider/monotonic_provider.cpp @@ -0,0 +1,32 @@ +#include "monotonic_provider.h" + +namespace { +TIntrusivePtr<IMonotonicTimeProvider> GlobalMonotonicTimeProvider; +} + +void TMonotonicOperator::RegisterProvider(TIntrusivePtr<IMonotonicTimeProvider> provider) { + GlobalMonotonicTimeProvider = provider; +} + +NMonotonic::TMonotonic TMonotonicOperator::Now() { + if (GlobalMonotonicTimeProvider) { + return GlobalMonotonicTimeProvider->Now(); + } else { + return TMonotonic::Now(); + } +} + +namespace NMonotonic { + +class TDefaultMonotonicTimeProvider: public IMonotonicTimeProvider { +public: + TMonotonic Now() override { + return TMonotonic::Now(); + } +}; + +TIntrusivePtr<IMonotonicTimeProvider> CreateDefaultMonotonicTimeProvider() { + return TIntrusivePtr<IMonotonicTimeProvider>(new TDefaultMonotonicTimeProvider); +} + +} |
