// 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_SIMPLE_TEST_TICK_CLOCK_H_ #define BASE_SIMPLE_TEST_TICK_CLOCK_H_ #include "base/compiler_specific.h" #include "base/synchronization/lock.h" #include "base/time/tick_clock.h" #include "base/time/time.h" namespace base { // SimpleTestTickClock is a TickClock implementation that gives // control over the returned TimeTicks objects. All methods may be // called from any thread. class SimpleTestTickClock : public TickClock { public: // Starts off with a clock set to TimeTicks(). SimpleTestTickClock(); virtual ~SimpleTestTickClock(); virtual TimeTicks NowTicks() OVERRIDE; // Advances the clock by |delta|, which must not be negative. void Advance(TimeDelta delta); private: // Protects |now_ticks_|. Lock lock_; TimeTicks now_ticks_; }; } // namespace base #endif // BASE_SIMPLE_TEST_TICK_CLOCK_H_