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 5#ifndef NET_QUIC_QUIC_CLOCK_H_ 6#define NET_QUIC_QUIC_CLOCK_H_ 7 8#include "base/basictypes.h" 9#include "net/base/net_export.h" 10#include "net/quic/quic_time.h" 11 12namespace net { 13 14typedef double WallTime; 15 16// Clock to efficiently retrieve an approximately accurate time from an 17// EpollServer. 18class NET_EXPORT_PRIVATE QuicClock { 19 public: 20 QuicClock(); 21 virtual ~QuicClock(); 22 23 // Returns the approximate current time as a QuicTime object. 24 virtual QuicTime ApproximateNow() const; 25 26 // Returns the current time as a QuicTime object. 27 // Note: this use significant resources please use only if needed. 28 virtual QuicTime Now() const; 29 30 // WallNow returns the current wall-time - a time that is consistent across 31 // different clocks. 32 virtual QuicWallTime WallNow() const; 33 34 private: 35 DISALLOW_COPY_AND_ASSIGN(QuicClock); 36}; 37 38} // namespace net 39 40#endif // NET_QUIC_QUIC_CLOCK_H_ 41