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