Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Unified Diff: components/metrics/single_sample_metrics.h

Issue 2687583002: Add support for single sample metrics. (Closed)
Patch Set: Address comments. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_
« no previous file with comments | « components/metrics/public/interfaces/single_sample_metrics.mojom ('k') | components/metrics/single_sample_metrics.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698