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 12 namespace net { 13 14 typedef double WallTime; 15 16 // Clock to efficiently retrieve an approximately accurate time from an 17 // EpollServer. 18 class 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