Chromium Code Reviews| 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..2c1905fe4acd1c903a26e249fe4bdc5ab573c71e |
| --- /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 simplicitly and to avoid the need for |
|
dcheng
2017/05/04 22:18:51
simplicitly => simplicity
DaleCurtis
2017/05/04 22:25:04
Done.
|
| +// 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_ |