Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(371)

Side by Side Diff: webrtc/system_wrappers/include/clock.h

Issue 2393723004: replace NtpTime->Clock with Clock->NtpTime dependency (Closed)
Patch Set: . Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/time_util.h ('k') | webrtc/system_wrappers/include/ntp_time.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_SYSTEM_WRAPPERS_INCLUDE_CLOCK_H_ 11 #ifndef WEBRTC_SYSTEM_WRAPPERS_INCLUDE_CLOCK_H_
12 #define WEBRTC_SYSTEM_WRAPPERS_INCLUDE_CLOCK_H_ 12 #define WEBRTC_SYSTEM_WRAPPERS_INCLUDE_CLOCK_H_
13 13
14 #include <memory> 14 #include <memory>
15 15
16 #include "webrtc/system_wrappers/include/ntp_time.h"
16 #include "webrtc/system_wrappers/include/rw_lock_wrapper.h" 17 #include "webrtc/system_wrappers/include/rw_lock_wrapper.h"
17 #include "webrtc/typedefs.h" 18 #include "webrtc/typedefs.h"
18 19
19 namespace webrtc { 20 namespace webrtc {
20 21
21 // January 1970, in NTP seconds. 22 // January 1970, in NTP seconds.
22 const uint32_t kNtpJan1970 = 2208988800UL; 23 const uint32_t kNtpJan1970 = 2208988800UL;
23 24
24 // Magic NTP fractional unit. 25 // Magic NTP fractional unit.
25 const double kMagicNtpFractionalUnit = 4.294967296E+9; 26 const double kMagicNtpFractionalUnit = 4.294967296E+9;
(...skipping 10 matching lines...) Expand all
36 // Return a timestamp in microseconds relative to some arbitrary source; the 37 // Return a timestamp in microseconds relative to some arbitrary source; the
37 // source is fixed for this clock. 38 // source is fixed for this clock.
38 virtual int64_t TimeInMicroseconds() const = 0; 39 virtual int64_t TimeInMicroseconds() const = 0;
39 40
40 // Retrieve an NTP absolute timestamp in seconds and fractions of a second. 41 // Retrieve an NTP absolute timestamp in seconds and fractions of a second.
41 virtual void CurrentNtp(uint32_t& seconds, uint32_t& fractions) const = 0; 42 virtual void CurrentNtp(uint32_t& seconds, uint32_t& fractions) const = 0;
42 43
43 // Retrieve an NTP absolute timestamp in milliseconds. 44 // Retrieve an NTP absolute timestamp in milliseconds.
44 virtual int64_t CurrentNtpInMilliseconds() const = 0; 45 virtual int64_t CurrentNtpInMilliseconds() const = 0;
45 46
47 // TODO(danilchap): Make pure virtual once implemented in derived classed
48 // replacing CurrentNtp function.
49 virtual NtpTime CurrentNtpTime() const;
50
46 // Converts an NTP timestamp to a millisecond timestamp. 51 // Converts an NTP timestamp to a millisecond timestamp.
47 static int64_t NtpToMs(uint32_t seconds, uint32_t fractions); 52 static int64_t NtpToMs(uint32_t seconds, uint32_t fractions) {
53 return NtpTime(seconds, fractions).ToMs();
54 }
48 55
49 // Returns an instance of the real-time system clock implementation. 56 // Returns an instance of the real-time system clock implementation.
50 static Clock* GetRealTimeClock(); 57 static Clock* GetRealTimeClock();
51 }; 58 };
52 59
53 class SimulatedClock : public Clock { 60 class SimulatedClock : public Clock {
54 public: 61 public:
55 explicit SimulatedClock(int64_t initial_time_us); 62 explicit SimulatedClock(int64_t initial_time_us);
56 63
57 ~SimulatedClock() override; 64 ~SimulatedClock() override;
(...skipping 18 matching lines...) Expand all
76 void AdvanceTimeMicroseconds(int64_t microseconds); 83 void AdvanceTimeMicroseconds(int64_t microseconds);
77 84
78 private: 85 private:
79 int64_t time_us_; 86 int64_t time_us_;
80 std::unique_ptr<RWLockWrapper> lock_; 87 std::unique_ptr<RWLockWrapper> lock_;
81 }; 88 };
82 89
83 }; // namespace webrtc 90 }; // namespace webrtc
84 91
85 #endif // WEBRTC_SYSTEM_WRAPPERS_INCLUDE_CLOCK_H_ 92 #endif // WEBRTC_SYSTEM_WRAPPERS_INCLUDE_CLOCK_H_
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/time_util.h ('k') | webrtc/system_wrappers/include/ntp_time.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698