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

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

Issue 1888593004: Delete all use of tick_util.h. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase. Created 4 years, 7 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/system_wrappers/BUILD.gn ('k') | webrtc/system_wrappers/source/clock.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 // System independant wrapper for polling elapsed time in ms and us.
12 // The implementation works in the tick domain which can be mapped over to the
13 // time domain.
14 #ifndef WEBRTC_SYSTEM_WRAPPERS_INCLUDE_TICK_UTIL_H_
15 #define WEBRTC_SYSTEM_WRAPPERS_INCLUDE_TICK_UTIL_H_
16
17 #if _WIN32
18 // Note: The Windows header must always be included before mmsystem.h
19 #include <windows.h>
20 #include <mmsystem.h>
21 #elif WEBRTC_LINUX
22 #include <time.h>
23 #elif WEBRTC_MAC
24 #include <mach/mach_time.h>
25 #include <string.h>
26 #else
27 #include <sys/time.h>
28 #include <time.h>
29 #endif
30
31 #include "webrtc/typedefs.h"
32
33 namespace webrtc {
34
35 class TickInterval;
36
37 // Class representing the current time.
38 class TickTime {
39 public:
40 TickTime();
41 explicit TickTime(int64_t ticks);
42
43 // Current time in the tick domain.
44 static TickTime Now();
45
46 // Now in the time domain in ms.
47 static int64_t MillisecondTimestamp();
48
49 // Now in the time domain in us.
50 static int64_t MicrosecondTimestamp();
51
52 // Returns the number of ticks in the tick domain.
53 int64_t Ticks() const;
54
55 static int64_t MillisecondsToTicks(const int64_t ms);
56
57 static int64_t TicksToMilliseconds(const int64_t ticks);
58
59 static int64_t TicksToMicroseconds(const int64_t ticks);
60
61 // Returns a TickTime that is ticks later than the passed TickTime.
62 friend TickTime operator+(const TickTime lhs, const int64_t ticks);
63 TickTime& operator+=(const int64_t& ticks);
64
65 // Returns a TickInterval that is the difference in ticks beween rhs and lhs.
66 friend TickInterval operator-(const TickTime& lhs, const TickTime& rhs);
67
68 private:
69 static int64_t QueryOsForTicks();
70
71 int64_t ticks_;
72 };
73
74 // Represents a time delta in ticks.
75 class TickInterval {
76 public:
77 TickInterval();
78 explicit TickInterval(int64_t interval);
79
80 int64_t Milliseconds() const;
81 int64_t Microseconds() const;
82
83 // Returns the sum of two TickIntervals as a TickInterval.
84 friend TickInterval operator+(const TickInterval& lhs,
85 const TickInterval& rhs);
86 TickInterval& operator+=(const TickInterval& rhs);
87
88 // Returns a TickInterval corresponding to rhs - lhs.
89 friend TickInterval operator-(const TickInterval& lhs,
90 const TickInterval& rhs);
91 TickInterval& operator-=(const TickInterval& rhs);
92
93 friend bool operator>(const TickInterval& lhs, const TickInterval& rhs);
94 friend bool operator<=(const TickInterval& lhs, const TickInterval& rhs);
95 friend bool operator<(const TickInterval& lhs, const TickInterval& rhs);
96 friend bool operator>=(const TickInterval& lhs, const TickInterval& rhs);
97
98 private:
99 friend class TickTime;
100 friend TickInterval operator-(const TickTime& lhs, const TickTime& rhs);
101
102 private:
103 int64_t interval_;
104 };
105
106 inline int64_t TickInterval::Milliseconds() const {
107 return TickTime::TicksToMilliseconds(interval_);
108 }
109
110 inline int64_t TickInterval::Microseconds() const {
111 return TickTime::TicksToMicroseconds(interval_);
112 }
113
114 inline TickInterval operator+(const TickInterval& lhs,
115 const TickInterval& rhs) {
116 return TickInterval(lhs.interval_ + rhs.interval_);
117 }
118
119 inline TickInterval operator-(const TickInterval& lhs,
120 const TickInterval& rhs) {
121 return TickInterval(lhs.interval_ - rhs.interval_);
122 }
123
124 inline TickInterval operator-(const TickTime& lhs, const TickTime& rhs) {
125 return TickInterval(lhs.ticks_ - rhs.ticks_);
126 }
127
128 inline TickTime operator+(const TickTime lhs, const int64_t ticks) {
129 TickTime time = lhs;
130 time.ticks_ += ticks;
131 return time;
132 }
133
134 inline bool operator>(const TickInterval& lhs, const TickInterval& rhs) {
135 return lhs.interval_ > rhs.interval_;
136 }
137
138 inline bool operator<=(const TickInterval& lhs, const TickInterval& rhs) {
139 return lhs.interval_ <= rhs.interval_;
140 }
141
142 inline bool operator<(const TickInterval& lhs, const TickInterval& rhs) {
143 return lhs.interval_ <= rhs.interval_;
144 }
145
146 inline bool operator>=(const TickInterval& lhs, const TickInterval& rhs) {
147 return lhs.interval_ >= rhs.interval_;
148 }
149
150 inline TickTime::TickTime()
151 : ticks_(0) {
152 }
153
154 inline TickTime::TickTime(int64_t ticks)
155 : ticks_(ticks) {
156 }
157
158 inline TickTime TickTime::Now() {
159 return TickTime(QueryOsForTicks());
160 }
161
162 inline int64_t TickTime::Ticks() const {
163 return ticks_;
164 }
165
166 inline TickTime& TickTime::operator+=(const int64_t& ticks) {
167 ticks_ += ticks;
168 return *this;
169 }
170
171 inline TickInterval::TickInterval() : interval_(0) {
172 }
173
174 inline TickInterval::TickInterval(const int64_t interval)
175 : interval_(interval) {
176 }
177
178 inline TickInterval& TickInterval::operator+=(const TickInterval& rhs) {
179 interval_ += rhs.interval_;
180 return *this;
181 }
182
183 inline TickInterval& TickInterval::operator-=(const TickInterval& rhs) {
184 interval_ -= rhs.interval_;
185 return *this;
186 }
187
188 } // namespace webrtc
189
190 #endif // WEBRTC_SYSTEM_WRAPPERS_INCLUDE_TICK_UTIL_H_
OLDNEW
« no previous file with comments | « webrtc/system_wrappers/BUILD.gn ('k') | webrtc/system_wrappers/source/clock.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698