Roll WebRTC 9745:9761, Libjingle 9742:9761
[chromium-blink-merge.git] / net / quic / quic_clock.h
blob4e96d4c781e60baaa13b57f36004ea8f5800335c
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 NET_QUIC_QUIC_CLOCK_H_
6 #define NET_QUIC_QUIC_CLOCK_H_
8 #include "base/basictypes.h"
9 #include "net/base/net_export.h"
10 #include "net/quic/quic_time.h"
12 namespace net {
14 typedef double WallTime;
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();
23 // Returns the approximate current time as a QuicTime object.
24 virtual QuicTime ApproximateNow() const;
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;
30 // WallNow returns the current wall-time - a time that is consistent across
31 // different clocks.
32 virtual QuicWallTime WallNow() const;
34 private:
35 DISALLOW_COPY_AND_ASSIGN(QuicClock);
38 } // namespace net
40 #endif // NET_QUIC_QUIC_CLOCK_H_