// 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 #include #include #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 SnapshotSamples() const override; std::unique_ptr SnapshotDelta() override; std::unique_ptr SnapshotFinalDelta() const override; void WriteAscii(std::string* output) const override {} base::DictionaryValue ToGraphDict() const override; protected: // HistogramBase: void SerializeInfoImpl(Pickle* pickle) const override {} void GetParameters(DictionaryValue* params) const override {} private: friend class NoDestructor; DummyHistogram() : HistogramBase("dummy_histogram") {} ~DummyHistogram() override {} DISALLOW_COPY_AND_ASSIGN(DummyHistogram); }; } // namespace base #endif // BASE_METRICS_DUMMY_HISTOGRAM_H_