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

Unified Diff: components/metrics/single_sample_metrics_factory_impl.cc

Issue 2862333002: Revert of Add support for single sample metrics. (Closed)
Patch Set: 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_factory_impl.cc
diff --git a/components/metrics/single_sample_metrics_factory_impl.cc b/components/metrics/single_sample_metrics_factory_impl.cc
deleted file mode 100644
index 98b1dc73dce26af83b8f8c7621315f3be760a9b1..0000000000000000000000000000000000000000
--- a/components/metrics/single_sample_metrics_factory_impl.cc
+++ /dev/null
@@ -1,90 +0,0 @@
-// 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.
-
-#include "components/metrics/single_sample_metrics_factory_impl.h"
-
-#include "base/threading/thread_checker.h"
-
-namespace metrics {
-
-namespace {
-
-class SingleSampleMetricImpl : public base::SingleSampleMetric {
- public:
- SingleSampleMetricImpl(mojom::SingleSampleMetricPtr metric)
- : metric_(std::move(metric)) {}
-
- ~SingleSampleMetricImpl() override {
- DCHECK(thread_checker_.CalledOnValidThread());
- }
-
- void SetSample(base::HistogramBase::Sample sample) override {
- DCHECK(thread_checker_.CalledOnValidThread());
- metric_->SetSample(sample);
- }
-
- private:
- base::ThreadChecker thread_checker_;
- mojom::SingleSampleMetricPtr metric_;
-
- DISALLOW_COPY_AND_ASSIGN(SingleSampleMetricImpl);
-};
-
-} // namespace
-
-SingleSampleMetricsFactoryImpl::SingleSampleMetricsFactoryImpl(
- CreateProviderCB create_provider_cb)
- : create_provider_cb_(std::move(create_provider_cb)) {}
-
-SingleSampleMetricsFactoryImpl::~SingleSampleMetricsFactoryImpl() {}
-
-std::unique_ptr<base::SingleSampleMetric>
-SingleSampleMetricsFactoryImpl::CreateCustomCountsMetric(
- const std::string& histogram_name,
- base::HistogramBase::Sample min,
- base::HistogramBase::Sample max,
- uint32_t bucket_count) {
- return CreateMetric(histogram_name, min, max, bucket_count,
- base::HistogramBase::kUmaTargetedHistogramFlag);
-}
-
-void SingleSampleMetricsFactoryImpl::DestroyProviderForTesting() {
- if (auto* provider = provider_tls_.Get())
- delete provider;
- provider_tls_.Set(nullptr);
-}
-
-std::unique_ptr<base::SingleSampleMetric>
-SingleSampleMetricsFactoryImpl::CreateMetric(const std::string& histogram_name,
- base::HistogramBase::Sample min,
- base::HistogramBase::Sample max,
- uint32_t bucket_count,
- int32_t flags) {
- mojom::SingleSampleMetricPtr metric;
- GetProvider()->AcquireSingleSampleMetric(
- histogram_name, min, max, bucket_count, flags,
- mojo::MakeRequest<mojom::SingleSampleMetric>(&metric));
- return base::MakeUnique<SingleSampleMetricImpl>(std::move(metric));
-}
-
-mojom::SingleSampleMetricsProvider*
-SingleSampleMetricsFactoryImpl::GetProvider() {
- // Check the current TLS slot to see if we have created a provider already for
- // this thread.
- if (auto* provider = provider_tls_.Get())
- return provider->get();
-
- // If not, create a new one which will persist until process shutdown and put
- // it in the TLS slot for the current thread.
- mojom::SingleSampleMetricsProviderPtr* provider =
- new mojom::SingleSampleMetricsProviderPtr();
- provider_tls_.Set(provider);
-
- // Start the provider connection and return it; it won't be fully connected
- // until later, but mojo will buffer all calls prior to completion.
- create_provider_cb_.Run(mojo::MakeRequest(provider));
- return provider->get();
-}
-
-} // namespace metrics

Powered by Google App Engine
This is Rietveld 408576698