time_provider.cpp 694 B

123456789101112131415161718192021222324252627282930
  1. #include "time_provider.h"
  2. class TDefaultTimeProvider: public ITimeProvider {
  3. public:
  4. TInstant Now() override {
  5. return TInstant::Now();
  6. }
  7. };
  8. class TDeterministicTimeProvider: public ITimeProvider {
  9. public:
  10. TDeterministicTimeProvider(ui64 seed) {
  11. Value = TInstant::Seconds(seed);
  12. }
  13. TInstant Now() override {
  14. return Value;
  15. }
  16. private:
  17. TInstant Value;
  18. };
  19. TIntrusivePtr<ITimeProvider> CreateDefaultTimeProvider() {
  20. return TIntrusivePtr<ITimeProvider>(new TDefaultTimeProvider());
  21. }
  22. TIntrusivePtr<ITimeProvider> CreateDeterministicTimeProvider(ui64 seed) {
  23. return TIntrusivePtr<ITimeProvider>(new TDeterministicTimeProvider(seed));
  24. }