Index: components/metrics/single_sample_metrics.h |
diff --git a/components/metrics/single_sample_metrics.h b/components/metrics/single_sample_metrics.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cd7ab33f9279b40d269d9a4b49043095705ac7ce |
--- /dev/null |
+++ b/components/metrics/single_sample_metrics.h |
@@ -0,0 +1,43 @@ |
+// Copyright 2017 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_SINGLE_SAMPLE_METRICS_H_ |
+#define COMPONENTS_METRICS_SINGLE_SAMPLE_METRICS_H_ |
+ |
+#include "base/callback.h" |
+#include "components/metrics/public/interfaces/single_sample_metrics.mojom.h" |
+#include "services/service_manager/public/cpp/bind_source_info.h" |
+ |
+namespace metrics { |
+ |
+using CreateProviderCB = |
+ base::RepeatingCallback<void(mojom::SingleSampleMetricsProviderRequest)>; |
+ |
+// Initializes and sets the base::SingleSampleMetricsFactory for the current |
+// process. |create_provider_cb| is used to create provider instances per each |
+// thread that the factory is used on; this is necessary since the underlying |
+// providers must only be used on the same thread as construction. |
+// |
+// We use a callback here to avoid taking additional DEPS on content and a |
+// service_manager::Connector() for simplicity and to avoid the need for |
+// using the service test harness in metrics unittests. |
+// |
+// Typically this is called in the process where termination may occur without |
+// warning; e.g. perhaps a renderer process. |
+extern void InitializeSingleSampleMetricsFactory( |
+ CreateProviderCB create_provider_cb); |
+ |
+// Creates a mojom::SingleSampleMetricsProvider capable of vending single sample |
+// metrics attached to a mojo pipe. |
+// |
+// Typically this is given to a service_manager::BinderRegistry in the process |
+// that has a deterministic shutdown path and which serves as a stable endpoint |
+// for the factory created by the above initialize method in another process. |
+extern void CreateSingleSampleMetricsProvider( |
+ const service_manager::BindSourceInfo& source_info, |
+ mojom::SingleSampleMetricsProviderRequest request); |
+ |
+} // namespace metrics |
+ |
+#endif // COMPONENTS_METRICS_SINGLE_SAMPLE_METRICS_H_ |