1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef BASE_TEST_SIMPLE_TEST_CLOCK_H_
- #define BASE_TEST_SIMPLE_TEST_CLOCK_H_
- #include "base/compiler_specific.h"
- #include "base/synchronization/lock.h"
- #include "base/time/clock.h"
- #include "base/time/time.h"
- namespace base {
- // SimpleTestClock is a Clock implementation that gives control over
- // the returned Time objects. All methods may be called from any
- // thread.
- class SimpleTestClock : public Clock {
- public:
- // Starts off with a clock set to Time().
- SimpleTestClock();
- ~SimpleTestClock() override;
- Time Now() const override;
- // Advances the clock by |delta|.
- void Advance(TimeDelta delta);
- // Sets the clock to the given time.
- void SetNow(Time now);
- private:
- // Protects |now_|.
- mutable Lock lock_;
- Time now_;
- };
- } // namespace base
- #endif // BASE_TEST_SIMPLE_TEST_CLOCK_H_
|