15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/quic/test_tools/mock_clock.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)MockClock::MockClock() : now_(QuicTime::Zero()) { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockClock::~MockClock() { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockClock::AdvanceTime(QuicTime::Delta delta) { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) now_ = now_.Add(delta); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)QuicTime MockClock::Now() const { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return now_; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)QuicTime MockClock::ApproximateNow() const { 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return now_; 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)QuicWallTime MockClock::WallNow() const { 28b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) return QuicWallTime::FromUNIXSeconds( 29b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) now_.Subtract(QuicTime::Zero()).ToSeconds()); 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base::TimeTicks MockClock::NowInTicks() const { 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::TimeTicks ticks; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ticks + base::TimeDelta::FromMicroseconds( 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) now_.Subtract(QuicTime::Zero()).ToMicroseconds()); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace net 39