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

Side by Side Diff: components/metrics/single_sample_metrics_provider.cc

Issue 2687583002: Add support for single sample metrics. (Closed)
Patch Set: Add tests. 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "components/metrics/single_sample_metrics_provider.h"
6
7 #include "base/metrics/single_sample_metrics.h"
8 #include "mojo/public/cpp/bindings/strong_binding.h"
9
10 namespace metrics {
11
12 class MojoSingleSampleMetric : public mojom::SingleSampleMetric {
13 public:
14 MojoSingleSampleMetric(const std::string& name,
15 base::HistogramBase::Sample min,
16 base::HistogramBase::Sample max,
17 uint32_t bucket_count,
18 int32_t flags)
19 : metric_(name, min, max, bucket_count, flags) {}
20 ~MojoSingleSampleMetric() override {}
21
22 private:
23 // mojom::SingleSampleMetric implementation.
24 void SetSample(base::HistogramBase::Sample sample) override {
25 metric_.SetSample(sample);
26 }
27
28 base::DefaultSingleSampleMetric metric_;
29
30 DISALLOW_COPY_AND_ASSIGN(MojoSingleSampleMetric);
31 };
32
33 // static
34 void SingleSampleMetricsProvider::Create(
35 mojom::SingleSampleMetricsProviderRequest request) {
36 mojo::MakeStrongBinding(base::MakeUnique<SingleSampleMetricsProvider>(),
37 std::move(request));
38 }
39
40 SingleSampleMetricsProvider::SingleSampleMetricsProvider() {}
41
42 SingleSampleMetricsProvider::~SingleSampleMetricsProvider() {
43 DCHECK(thread_checker_.CalledOnValidThread());
44 }
45
46 void SingleSampleMetricsProvider::AcquireSingleSampleMetric(
47 const std::string& name,
48 base::HistogramBase::Sample min,
49 base::HistogramBase::Sample max,
50 uint32_t bucket_count,
51 int32_t flags,
52 mojom::SingleSampleMetricRequest request) {
53 DCHECK(thread_checker_.CalledOnValidThread());
54 mojo::MakeStrongBinding(base::MakeUnique<MojoSingleSampleMetric>(
55 name, min, max, bucket_count, flags),
56 std::move(request));
57 }
58
59 } // namespace metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698