xref: /aosp_15_r20/external/cronet/base/metrics/dummy_histogram.h (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 #ifndef BASE_METRICS_DUMMY_HISTOGRAM_H_
6*6777b538SAndroid Build Coastguard Worker #define BASE_METRICS_DUMMY_HISTOGRAM_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker #include <stdint.h>
9*6777b538SAndroid Build Coastguard Worker 
10*6777b538SAndroid Build Coastguard Worker #include <memory>
11*6777b538SAndroid Build Coastguard Worker #include <string>
12*6777b538SAndroid Build Coastguard Worker #include <string_view>
13*6777b538SAndroid Build Coastguard Worker 
14*6777b538SAndroid Build Coastguard Worker #include "base/base_export.h"
15*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram_base.h"
16*6777b538SAndroid Build Coastguard Worker #include "base/no_destructor.h"
17*6777b538SAndroid Build Coastguard Worker #include "base/values.h"
18*6777b538SAndroid Build Coastguard Worker 
19*6777b538SAndroid Build Coastguard Worker namespace base {
20*6777b538SAndroid Build Coastguard Worker 
21*6777b538SAndroid Build Coastguard Worker // DummyHistogram is used for mocking histogram objects for histograms that
22*6777b538SAndroid Build Coastguard Worker // shouldn't be recorded. It doesn't do any actual processing.
23*6777b538SAndroid Build Coastguard Worker class BASE_EXPORT DummyHistogram : public HistogramBase {
24*6777b538SAndroid Build Coastguard Worker  public:
25*6777b538SAndroid Build Coastguard Worker   static DummyHistogram* GetInstance();
26*6777b538SAndroid Build Coastguard Worker 
27*6777b538SAndroid Build Coastguard Worker   DummyHistogram(const DummyHistogram&) = delete;
28*6777b538SAndroid Build Coastguard Worker   DummyHistogram& operator=(const DummyHistogram&) = delete;
29*6777b538SAndroid Build Coastguard Worker 
30*6777b538SAndroid Build Coastguard Worker   // HistogramBase:
CheckName(std::string_view name)31*6777b538SAndroid Build Coastguard Worker   void CheckName(std::string_view name) const override {}
32*6777b538SAndroid Build Coastguard Worker   uint64_t name_hash() const override;
33*6777b538SAndroid Build Coastguard Worker   HistogramType GetHistogramType() const override;
34*6777b538SAndroid Build Coastguard Worker   bool HasConstructionArguments(Sample expected_minimum,
35*6777b538SAndroid Build Coastguard Worker                                 Sample expected_maximum,
36*6777b538SAndroid Build Coastguard Worker                                 size_t expected_bucket_count) const override;
Add(Sample value)37*6777b538SAndroid Build Coastguard Worker   void Add(Sample value) override {}
AddCount(Sample value,int count)38*6777b538SAndroid Build Coastguard Worker   void AddCount(Sample value, int count) override {}
AddSamples(const HistogramSamples & samples)39*6777b538SAndroid Build Coastguard Worker   void AddSamples(const HistogramSamples& samples) override {}
40*6777b538SAndroid Build Coastguard Worker   bool AddSamplesFromPickle(PickleIterator* iter) override;
41*6777b538SAndroid Build Coastguard Worker   std::unique_ptr<HistogramSamples> SnapshotSamples() const override;
42*6777b538SAndroid Build Coastguard Worker   std::unique_ptr<HistogramSamples> SnapshotUnloggedSamples() const override;
MarkSamplesAsLogged(const HistogramSamples & samples)43*6777b538SAndroid Build Coastguard Worker   void MarkSamplesAsLogged(const HistogramSamples& samples) override {}
44*6777b538SAndroid Build Coastguard Worker   std::unique_ptr<HistogramSamples> SnapshotDelta() override;
45*6777b538SAndroid Build Coastguard Worker   std::unique_ptr<HistogramSamples> SnapshotFinalDelta() const override;
WriteAscii(std::string * output)46*6777b538SAndroid Build Coastguard Worker   void WriteAscii(std::string* output) const override {}
47*6777b538SAndroid Build Coastguard Worker   Value::Dict ToGraphDict() const override;
48*6777b538SAndroid Build Coastguard Worker 
49*6777b538SAndroid Build Coastguard Worker  protected:
50*6777b538SAndroid Build Coastguard Worker   // HistogramBase:
SerializeInfoImpl(Pickle * pickle)51*6777b538SAndroid Build Coastguard Worker   void SerializeInfoImpl(Pickle* pickle) const override {}
52*6777b538SAndroid Build Coastguard Worker   Value::Dict GetParameters() const override;
53*6777b538SAndroid Build Coastguard Worker 
54*6777b538SAndroid Build Coastguard Worker  private:
55*6777b538SAndroid Build Coastguard Worker   friend class NoDestructor<DummyHistogram>;
56*6777b538SAndroid Build Coastguard Worker 
DummyHistogram()57*6777b538SAndroid Build Coastguard Worker   DummyHistogram() : HistogramBase("dummy_histogram") {}
~DummyHistogram()58*6777b538SAndroid Build Coastguard Worker   ~DummyHistogram() override {}
59*6777b538SAndroid Build Coastguard Worker };
60*6777b538SAndroid Build Coastguard Worker 
61*6777b538SAndroid Build Coastguard Worker }  // namespace base
62*6777b538SAndroid Build Coastguard Worker 
63*6777b538SAndroid Build Coastguard Worker #endif  // BASE_METRICS_DUMMY_HISTOGRAM_H_
64