| 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_
|
|
|