QUIC - cleanup changes to sync chromium tree with internal source.
[chromium-blink-merge.git] / base / test / simple_test_clock.h
bloba70f99c1cabd65cabd75e62736d709842afb0b8f
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.
5 #ifndef BASE_TEST_SIMPLE_TEST_CLOCK_H_
6 #define BASE_TEST_SIMPLE_TEST_CLOCK_H_
8 #include "base/compiler_specific.h"
9 #include "base/synchronization/lock.h"
10 #include "base/time/clock.h"
11 #include "base/time/time.h"
13 namespace base {
15 // SimpleTestClock is a Clock implementation that gives control over
16 // the returned Time objects. All methods may be called from any
17 // thread.
18 class SimpleTestClock : public Clock {
19 public:
20 // Starts off with a clock set to Time().
21 SimpleTestClock();
22 ~SimpleTestClock() override;
24 Time Now() override;
26 // Advances the clock by |delta|.
27 void Advance(TimeDelta delta);
29 // Sets the clock to the given time.
30 void SetNow(Time now);
32 private:
33 // Protects |now_|.
34 Lock lock_;
36 Time now_;
39 } // namespace base
41 #endif // BASE_TEST_SIMPLE_TEST_CLOCK_H_