dummy_histogram.h 2.0 KB

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