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