clock.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright (c) 2012 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_TIME_CLOCK_H_
  5. #define BASE_TIME_CLOCK_H_
  6. #include "base/base_export.h"
  7. #include "base/time/time.h"
  8. namespace base {
  9. // A Clock is an interface for objects that vend Times. It is
  10. // intended to be able to test the behavior of classes with respect to
  11. // time.
  12. //
  13. // See DefaultClock (base/time/default_clock.h) for the default
  14. // implementation that simply uses Time::Now().
  15. //
  16. // (An implementation that uses Time::SystemTime() should be added as
  17. // needed.)
  18. //
  19. // See SimpleTestClock (base/test/simple_test_clock.h) for a simple
  20. // test implementation.
  21. //
  22. // See TickClock (base/time/tick_clock.h) for the equivalent interface for
  23. // TimeTicks.
  24. class BASE_EXPORT Clock {
  25. public:
  26. virtual ~Clock();
  27. // Now() must be safe to call from any thread. The caller cannot
  28. // make any ordering assumptions about the returned Time. For
  29. // example, the system clock may change to an earlier time.
  30. virtual Time Now() const = 0;
  31. };
  32. } // namespace base
  33. #endif // BASE_TIME_CLOCK_H_