real_time_domain.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright 2015 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef BASE_TASK_SEQUENCE_MANAGER_REAL_TIME_DOMAIN_H_
  5. #define BASE_TASK_SEQUENCE_MANAGER_REAL_TIME_DOMAIN_H_
  6. #include "base/base_export.h"
  7. #include "base/task/sequence_manager/time_domain.h"
  8. namespace base {
  9. namespace sequence_manager {
  10. namespace internal {
  11. class BASE_EXPORT RealTimeDomain : public TimeDomain {
  12. public:
  13. RealTimeDomain() = default;
  14. RealTimeDomain(const RealTimeDomain&) = delete;
  15. RealTimeDomain& operator=(const RealTimeDomain&) = delete;
  16. ~RealTimeDomain() override = default;
  17. // TimeDomain implementation:
  18. LazyNow CreateLazyNow() const override;
  19. TimeTicks Now() const override;
  20. Optional<TimeDelta> DelayTillNextTask(LazyNow* lazy_now) override;
  21. bool MaybeFastForwardToNextTask(bool quit_when_idle_requested) override;
  22. protected:
  23. void OnRegisterWithSequenceManager(
  24. SequenceManagerImpl* sequence_manager) override;
  25. const char* GetName() const override;
  26. private:
  27. const TickClock* tick_clock_ = nullptr;
  28. };
  29. } // namespace internal
  30. } // namespace sequence_manager
  31. } // namespace base
  32. #endif // BASE_TASK_SEQUENCE_MANAGER_REAL_TIME_DOMAIN_H_