Index: components/metrics/metrics_provider.h |
=================================================================== |
--- components/metrics/metrics_provider.h (revision 0) |
+++ components/metrics/metrics_provider.h (working copy) |
@@ -0,0 +1,50 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef COMPONENTS_METRICS_METRICS_PROVIDER_H_ |
+#define COMPONENTS_METRICS_METRICS_PROVIDER_H_ |
+ |
+#include "base/basictypes.h" |
+ |
+namespace metrics { |
+ |
+class ChromeUserMetricsExtension; |
+class SystemProfileProto; |
+class SystemProfileProto_Stability; |
+ |
+// MetricsProvider is an interface allowing different parts of the UMA protos to |
+// be filled out by different classes. |
+class MetricsProvider { |
+ public: |
+ MetricsProvider() {} |
+ virtual ~MetricsProvider() {} |
+ |
+ // Called when metrics recording has been enabled. |
+ virtual void OnRecordingEnabled() {} |
+ |
+ // Called when metrics recording has been disabled. |
+ virtual void OnRecordingDisabled() {} |
+ |
+ // Provides additional metrics into the system profile. |
+ virtual void ProvideSystemProfileMetrics( |
+ SystemProfileProto* system_profile_proto) {} |
+ |
+ // Provides additional stability metrics. Stability metrics can be provided |
+ // directly into |stability_proto| fields or by logging stability histograms |
+ // via the UMA_STABILITY_HISTOGRAM_ENUMERATION() macro. |
+ virtual void ProvideStabilityMetrics( |
+ SystemProfileProto_Stability* stability_proto) {} |
+ |
+ // Provides general metrics that are neither system profile nor stability |
+ // metrics. |
+ virtual void ProvideGeneralMetrics( |
+ ChromeUserMetricsExtension* uma_proto) {} |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(MetricsProvider); |
+}; |
+ |
+} // namespace metrics |
+ |
+#endif // COMPONENTS_METRICS_METRICS_PROVIDER_H_ |