#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 CreateDefaultTimeProvider() { return TIntrusivePtr(new TDefaultTimeProvider()); } TIntrusivePtr CreateDeterministicTimeProvider(ui64 seed) { return TIntrusivePtr(new TDeterministicTimeProvider(seed)); }