| // Copyright (c) 2012 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 NET_DISK_CACHE_STATS_HISTOGRAM_H_ | |
| #define NET_DISK_CACHE_STATS_HISTOGRAM_H_ | |
| #include <string> | |
| #include "base/memory/scoped_ptr.h" | |
| #include "base/metrics/histogram.h" | |
| namespace base { | |
| class BucketRanges; | |
| class HistogramSamples; | |
| class SampleVector; | |
| } // namespace base | |
| namespace disk_cache { | |
| class Stats; | |
| // This class provides support for sending the disk cache size stats as a UMA | |
| // histogram. We'll provide our own storage and management for the data, and a | |
| // SampleVector with a copy of our data. | |
| // | |
| // Class derivation of Histogram "deprecated," and should not be copied, and | |
| // may eventually go away. | |
| // | |
| class StatsHistogram : public base::Histogram { | |
| public: | |
| StatsHistogram(const std::string& name, | |
| Sample minimum, | |
| Sample maximum, | |
| size_t bucket_count, | |
| const base::BucketRanges* ranges, | |
| const Stats* stats); | |
| virtual ~StatsHistogram(); | |
| static void InitializeBucketRanges(const Stats* stats, | |
| base::BucketRanges* ranges); | |
| static StatsHistogram* FactoryGet(const std::string& name, | |
| const Stats* stats); | |
| virtual scoped_ptr<base::HistogramSamples> SnapshotSamples() const OVERRIDE; | |
| virtual Inconsistencies FindCorruption( | |
| const base::HistogramSamples& samples) const OVERRIDE; | |
| private: | |
| const Stats* stats_; | |
| DISALLOW_COPY_AND_ASSIGN(StatsHistogram); | |
| }; | |
| } // namespace disk_cache | |
| #endif // NET_DISK_CACHE_STATS_HISTOGRAM_H_ |