text: // 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.
  
  #ifndef BASE_METRICS_DUMMY_HISTOGRAM_H_
  #define BASE_METRICS_DUMMY_HISTOGRAM_H_
  
  #include <stdint.h>
  
  #include <memory>
  #include <string>
  
  #include "base/base_export.h"
  #include "base/metrics/histogram_base.h"
  #include "base/no_destructor.h"
  #include "base/values.h"
  
  namespace base {
  
  // DummyHistogram is used for mocking histogram objects for histograms that
  // shouldn't be recorded. It doesn't do any actual processing.
  class BASE_EXPORT DummyHistogram : public HistogramBase {
   public:
    static DummyHistogram* GetInstance();
  
    // HistogramBase:
    void CheckName(const StringPiece& name) const override {}
    uint64_t name_hash() const override;
    HistogramType GetHistogramType() const override;
    bool HasConstructionArguments(Sample expected_minimum,
                                  Sample expected_maximum,
                                  uint32_t expected_bucket_count) const override;
    void Add(Sample value) override {}
    void AddCount(Sample value, int count) override {}
    void AddSamples(const HistogramSamples& samples) override {}
    bool AddSamplesFromPickle(PickleIterator* iter) override;
    std::unique_ptr<HistogramSamples> SnapshotSamples() const override;
    std::unique_ptr<HistogramSamples> SnapshotDelta() override;
    std::unique_ptr<HistogramSamples> SnapshotFinalDelta() const override;
    void WriteAscii(std::string* output) const override {}
    Value ToGraphDict() const override;
  
   protected:
    // HistogramBase:
    void SerializeInfoImpl(Pickle* pickle) const override {}
    Value GetParameters() const override;
  
   private:
    friend class NoDestructor<DummyHistogram>;
  
    DummyHistogram() : HistogramBase("dummy_histogram") {}
    ~DummyHistogram() override {}
  
    DISALLOW_COPY_AND_ASSIGN(DummyHistogram);
  };
  
  }  // namespace base
  
  #endif  // BASE_METRICS_DUMMY_HISTOGRAM_H_
  