xref: /aosp_15_r20/external/cronet/base/metrics/dummy_histogram.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2017 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #include "base/metrics/dummy_histogram.h"
6*6777b538SAndroid Build Coastguard Worker 
7*6777b538SAndroid Build Coastguard Worker #include <memory>
8*6777b538SAndroid Build Coastguard Worker 
9*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram_samples.h"
10*6777b538SAndroid Build Coastguard Worker #include "base/metrics/metrics_hashes.h"
11*6777b538SAndroid Build Coastguard Worker #include "base/no_destructor.h"
12*6777b538SAndroid Build Coastguard Worker #include "base/notreached.h"
13*6777b538SAndroid Build Coastguard Worker #include "base/values.h"
14*6777b538SAndroid Build Coastguard Worker 
15*6777b538SAndroid Build Coastguard Worker namespace base {
16*6777b538SAndroid Build Coastguard Worker 
17*6777b538SAndroid Build Coastguard Worker namespace {
18*6777b538SAndroid Build Coastguard Worker 
19*6777b538SAndroid Build Coastguard Worker // Helper classes for DummyHistogram.
20*6777b538SAndroid Build Coastguard Worker class DummySampleCountIterator : public SampleCountIterator {
21*6777b538SAndroid Build Coastguard Worker  public:
22*6777b538SAndroid Build Coastguard Worker   DummySampleCountIterator() = default;
23*6777b538SAndroid Build Coastguard Worker   DummySampleCountIterator(const DummySampleCountIterator&) = delete;
24*6777b538SAndroid Build Coastguard Worker   DummySampleCountIterator& operator=(const DummySampleCountIterator&) = delete;
25*6777b538SAndroid Build Coastguard Worker   ~DummySampleCountIterator() override = default;
26*6777b538SAndroid Build Coastguard Worker 
27*6777b538SAndroid Build Coastguard Worker   // SampleCountIterator:
Done() const28*6777b538SAndroid Build Coastguard Worker   bool Done() const override { return true; }
Next()29*6777b538SAndroid Build Coastguard Worker   void Next() override { NOTREACHED(); }
Get(HistogramBase::Sample * min,int64_t * max,HistogramBase::Count * count)30*6777b538SAndroid Build Coastguard Worker   void Get(HistogramBase::Sample* min,
31*6777b538SAndroid Build Coastguard Worker            int64_t* max,
32*6777b538SAndroid Build Coastguard Worker            HistogramBase::Count* count) override {
33*6777b538SAndroid Build Coastguard Worker     NOTREACHED();
34*6777b538SAndroid Build Coastguard Worker   }
35*6777b538SAndroid Build Coastguard Worker };
36*6777b538SAndroid Build Coastguard Worker 
37*6777b538SAndroid Build Coastguard Worker class DummyHistogramSamples : public HistogramSamples {
38*6777b538SAndroid Build Coastguard Worker  public:
DummyHistogramSamples()39*6777b538SAndroid Build Coastguard Worker   DummyHistogramSamples()
40*6777b538SAndroid Build Coastguard Worker       : HistogramSamples(0, std::make_unique<LocalMetadata>()) {}
41*6777b538SAndroid Build Coastguard Worker   DummyHistogramSamples(const DummyHistogramSamples&) = delete;
42*6777b538SAndroid Build Coastguard Worker   DummyHistogramSamples& operator=(const DummyHistogramSamples&) = delete;
43*6777b538SAndroid Build Coastguard Worker 
44*6777b538SAndroid Build Coastguard Worker   // HistogramSamples:
Accumulate(HistogramBase::Sample value,HistogramBase::Count count)45*6777b538SAndroid Build Coastguard Worker   void Accumulate(HistogramBase::Sample value,
46*6777b538SAndroid Build Coastguard Worker                   HistogramBase::Count count) override {}
GetCount(HistogramBase::Sample value) const47*6777b538SAndroid Build Coastguard Worker   HistogramBase::Count GetCount(HistogramBase::Sample value) const override {
48*6777b538SAndroid Build Coastguard Worker     return HistogramBase::Count();
49*6777b538SAndroid Build Coastguard Worker   }
TotalCount() const50*6777b538SAndroid Build Coastguard Worker   HistogramBase::Count TotalCount() const override {
51*6777b538SAndroid Build Coastguard Worker     return HistogramBase::Count();
52*6777b538SAndroid Build Coastguard Worker   }
Iterator() const53*6777b538SAndroid Build Coastguard Worker   std::unique_ptr<SampleCountIterator> Iterator() const override {
54*6777b538SAndroid Build Coastguard Worker     return std::make_unique<DummySampleCountIterator>();
55*6777b538SAndroid Build Coastguard Worker   }
ExtractingIterator()56*6777b538SAndroid Build Coastguard Worker   std::unique_ptr<SampleCountIterator> ExtractingIterator() override {
57*6777b538SAndroid Build Coastguard Worker     return std::make_unique<DummySampleCountIterator>();
58*6777b538SAndroid Build Coastguard Worker   }
IsDefinitelyEmpty() const59*6777b538SAndroid Build Coastguard Worker   bool IsDefinitelyEmpty() const override {
60*6777b538SAndroid Build Coastguard Worker     NOTREACHED();
61*6777b538SAndroid Build Coastguard Worker     return true;
62*6777b538SAndroid Build Coastguard Worker   }
AddSubtractImpl(SampleCountIterator * iter,Operator op)63*6777b538SAndroid Build Coastguard Worker   bool AddSubtractImpl(SampleCountIterator* iter, Operator op) override {
64*6777b538SAndroid Build Coastguard Worker     return true;
65*6777b538SAndroid Build Coastguard Worker   }
66*6777b538SAndroid Build Coastguard Worker };
67*6777b538SAndroid Build Coastguard Worker 
68*6777b538SAndroid Build Coastguard Worker }  // namespace
69*6777b538SAndroid Build Coastguard Worker 
70*6777b538SAndroid Build Coastguard Worker // static
GetInstance()71*6777b538SAndroid Build Coastguard Worker DummyHistogram* DummyHistogram::GetInstance() {
72*6777b538SAndroid Build Coastguard Worker   static base::NoDestructor<DummyHistogram> dummy_histogram;
73*6777b538SAndroid Build Coastguard Worker   return dummy_histogram.get();
74*6777b538SAndroid Build Coastguard Worker }
75*6777b538SAndroid Build Coastguard Worker 
name_hash() const76*6777b538SAndroid Build Coastguard Worker uint64_t DummyHistogram::name_hash() const {
77*6777b538SAndroid Build Coastguard Worker   return HashMetricName(histogram_name());
78*6777b538SAndroid Build Coastguard Worker }
79*6777b538SAndroid Build Coastguard Worker 
GetHistogramType() const80*6777b538SAndroid Build Coastguard Worker HistogramType DummyHistogram::GetHistogramType() const {
81*6777b538SAndroid Build Coastguard Worker   return DUMMY_HISTOGRAM;
82*6777b538SAndroid Build Coastguard Worker }
83*6777b538SAndroid Build Coastguard Worker 
HasConstructionArguments(Sample expected_minimum,Sample expected_maximum,size_t expected_bucket_count) const84*6777b538SAndroid Build Coastguard Worker bool DummyHistogram::HasConstructionArguments(
85*6777b538SAndroid Build Coastguard Worker     Sample expected_minimum,
86*6777b538SAndroid Build Coastguard Worker     Sample expected_maximum,
87*6777b538SAndroid Build Coastguard Worker     size_t expected_bucket_count) const {
88*6777b538SAndroid Build Coastguard Worker   return true;
89*6777b538SAndroid Build Coastguard Worker }
90*6777b538SAndroid Build Coastguard Worker 
AddSamplesFromPickle(PickleIterator * iter)91*6777b538SAndroid Build Coastguard Worker bool DummyHistogram::AddSamplesFromPickle(PickleIterator* iter) {
92*6777b538SAndroid Build Coastguard Worker   return true;
93*6777b538SAndroid Build Coastguard Worker }
94*6777b538SAndroid Build Coastguard Worker 
SnapshotSamples() const95*6777b538SAndroid Build Coastguard Worker std::unique_ptr<HistogramSamples> DummyHistogram::SnapshotSamples() const {
96*6777b538SAndroid Build Coastguard Worker   return std::make_unique<DummyHistogramSamples>();
97*6777b538SAndroid Build Coastguard Worker }
98*6777b538SAndroid Build Coastguard Worker 
SnapshotUnloggedSamples() const99*6777b538SAndroid Build Coastguard Worker std::unique_ptr<HistogramSamples> DummyHistogram::SnapshotUnloggedSamples()
100*6777b538SAndroid Build Coastguard Worker     const {
101*6777b538SAndroid Build Coastguard Worker   return std::make_unique<DummyHistogramSamples>();
102*6777b538SAndroid Build Coastguard Worker }
103*6777b538SAndroid Build Coastguard Worker 
SnapshotDelta()104*6777b538SAndroid Build Coastguard Worker std::unique_ptr<HistogramSamples> DummyHistogram::SnapshotDelta() {
105*6777b538SAndroid Build Coastguard Worker   return std::make_unique<DummyHistogramSamples>();
106*6777b538SAndroid Build Coastguard Worker }
107*6777b538SAndroid Build Coastguard Worker 
SnapshotFinalDelta() const108*6777b538SAndroid Build Coastguard Worker std::unique_ptr<HistogramSamples> DummyHistogram::SnapshotFinalDelta() const {
109*6777b538SAndroid Build Coastguard Worker   return std::make_unique<DummyHistogramSamples>();
110*6777b538SAndroid Build Coastguard Worker }
111*6777b538SAndroid Build Coastguard Worker 
ToGraphDict() const112*6777b538SAndroid Build Coastguard Worker Value::Dict DummyHistogram::ToGraphDict() const {
113*6777b538SAndroid Build Coastguard Worker   return Value::Dict();
114*6777b538SAndroid Build Coastguard Worker }
115*6777b538SAndroid Build Coastguard Worker 
GetParameters() const116*6777b538SAndroid Build Coastguard Worker Value::Dict DummyHistogram::GetParameters() const {
117*6777b538SAndroid Build Coastguard Worker   return Value::Dict();
118*6777b538SAndroid Build Coastguard Worker }
119*6777b538SAndroid Build Coastguard Worker 
120*6777b538SAndroid Build Coastguard Worker }  // namespace base
121