RTCStatsCollector: timestamps updated.

Using a timestamp based on a timer that is monotonically increasing for
the cache, so that cache's freshness can be checked regardless of if
system clock is modified.

Using a system clock for the stats' timestamp, which needs to be
relative to UNIX epoch (Jan 1, 1970, UTC).

This CL removes the dependency on faketiming.h.

BUG=chromium:627816
NOTRY=True

Review-Url: https://codereview.webrtc.org/2299643002
Cr-Commit-Position: refs/heads/master@{#13997}
This commit is contained in:
hbos
2016-08-31 07:57:36 -07:00
committed by Commit bot
parent a69d973267
commit 0e6758d7ef
9 changed files with 102 additions and 88 deletions

View File

@ -49,17 +49,17 @@ class RTCStatsMemberInterface;
// }
class RTCStats {
public:
RTCStats(const std::string& id, double timestamp)
: id_(id), timestamp_(timestamp) {}
RTCStats(std::string&& id, double timestamp)
: id_(std::move(id)), timestamp_(timestamp) {}
RTCStats(const std::string& id, int64_t timestamp_us)
: id_(id), timestamp_us_(timestamp_us) {}
RTCStats(std::string&& id, int64_t timestamp_us)
: id_(std::move(id)), timestamp_us_(timestamp_us) {}
virtual ~RTCStats() {}
virtual std::unique_ptr<RTCStats> copy() const = 0;
const std::string& id() const { return id_; }
// Time relative to the UNIX epoch (Jan 1, 1970, UTC), in seconds.
double timestamp() const { return timestamp_; }
// Time relative to the UNIX epoch (Jan 1, 1970, UTC), in microseconds.
int64_t timestamp_us() const { return timestamp_us_; }
// Returns the static member variable |kType| of the implementing class.
virtual const char* type() const = 0;
// Returns a vector of pointers to all the RTCStatsMemberInterface members of
@ -88,7 +88,7 @@ class RTCStats {
size_t additional_capacity) const;
std::string const id_;
double timestamp_;
int64_t timestamp_us_;
};
// All |RTCStats| classes should use this macro in a public section of the class
@ -112,8 +112,8 @@ class RTCStats {
// rtcfoostats.h:
// class RTCFooStats : public RTCStats {
// public:
// RTCFooStats(const std::string& id, double timestamp)
// : RTCStats(id, timestamp),
// RTCFooStats(const std::string& id, int64_t timestamp_us)
// : RTCStats(id, timestamp_us),
// foo("foo"),
// bar("bar") {
// }