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_