// // Copyright 2020 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // HistogramWriter: // Helper class for writing histogram-json-set-format files to JSON. #ifndef ANGLE_TESTS_TEST_UTILS_HISTOGRAM_WRITER_H_ #define ANGLE_TESTS_TEST_UTILS_HISTOGRAM_WRITER_H_ #include #include #include // Include forward delcarations for rapidjson types. #include namespace catapult { class HistogramBuilder; } // namespace catapult namespace angle { class HistogramWriter { public: HistogramWriter(); ~HistogramWriter(); void addSample(const std::string &measurement, const std::string &story, double value, const std::string &units); void getAsJSON(rapidjson::Document *doc) const; private: #if defined(ANGLE_HAS_HISTOGRAMS) std::map> mHistograms; #endif // defined(ANGLE_HAS_HISTOGRAMS) }; // Define a stub implementation when histograms are compiled out. #if !defined(ANGLE_HAS_HISTOGRAMS) inline HistogramWriter::HistogramWriter() = default; inline HistogramWriter::~HistogramWriter() = default; inline void HistogramWriter::addSample(const std::string &measurement, const std::string &story, double value, const std::string &units) {} inline void HistogramWriter::getAsJSON(rapidjson::Document *doc) const {} #endif // !defined(ANGLE_HAS_HISTOGRAMS) } // namespace angle #endif // ANGLE_TESTS_TEST_UTILS_HISTOGRAM_WRITER_H_