Move MetricsObserverInterface out of peerconnectioninterface.h
This change moves the definition of the UMA MetricsObserverInterface from api/peerconnectioninterface.h into api/umametrics.h. This allows us to remove the unwanted dependency on peerconnectioninterface.h from files in webrtc/p2p.
This is a simple refactoring with no functional changes.
BUG=None
Review-Url: https://codereview.webrtc.org/2627093005
Cr-Original-Commit-Position: refs/heads/master@{#16020}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 1d3c7e0b16fb5af637be34b29a4ac19e20ce3cab
diff --git a/api/umametrics.h b/api/umametrics.h
index 93c034f..3e92bac 100644
--- a/api/umametrics.h
+++ b/api/umametrics.h
@@ -13,6 +13,8 @@
#ifndef WEBRTC_API_UMAMETRICS_H_
#define WEBRTC_API_UMAMETRICS_H_
+#include "webrtc/base/refcount.h"
+
namespace webrtc {
// Used to specify which enum counter type we're incrementing in
@@ -109,6 +111,33 @@
kIceCandidatePairMax
};
+class MetricsObserverInterface : public rtc::RefCountInterface {
+ public:
+
+ // |type| is the type of the enum counter to be incremented. |counter|
+ // is the particular counter in that type. |counter_max| is the next sequence
+ // number after the highest counter.
+ virtual void IncrementEnumCounter(PeerConnectionEnumCounterType type,
+ int counter,
+ int counter_max) {}
+
+ // This is used to handle sparse counters like SSL cipher suites.
+ // TODO(guoweis): Remove the implementation once the dependency's interface
+ // definition is updated.
+ virtual void IncrementSparseEnumCounter(PeerConnectionEnumCounterType type,
+ int counter) {
+ IncrementEnumCounter(type, counter, 0 /* Ignored */);
+ }
+
+ virtual void AddHistogramSample(PeerConnectionMetricsName type,
+ int value) = 0;
+
+ protected:
+ virtual ~MetricsObserverInterface() {}
+};
+
+typedef MetricsObserverInterface UMAObserver;
+
} // namespace webrtc
#endif // WEBRTC_API_UMAMETRICS_H_