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