| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef NET_DISK_CACHE_STATS_HISTOGRAM_H_ | 5 #ifndef NET_DISK_CACHE_STATS_HISTOGRAM_H_ |
| 6 #define NET_DISK_CACHE_STATS_HISTOGRAM_H_ | 6 #define NET_DISK_CACHE_STATS_HISTOGRAM_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/metrics/histogram.h" | 11 #include "base/metrics/histogram.h" |
| 11 | 12 |
| 13 namespace base { |
| 14 class BucketRanges; |
| 15 class BucketHistogramSamples; |
| 16 class HistogramSamples; |
| 17 }; |
| 18 |
| 12 namespace disk_cache { | 19 namespace disk_cache { |
| 13 | 20 |
| 14 class Stats; | 21 class Stats; |
| 15 | 22 |
| 16 // This class provides support for sending the disk cache size stats as a UMA | 23 // This class provides support for sending the disk cache size stats as a UMA |
| 17 // histogram. We'll provide our own storage and management for the data, and a | 24 // histogram. We'll provide our own storage and management for the data, and a |
| 18 // SampleSet with a copy of our data. | 25 // SampleSet with a copy of our data. |
| 19 // | 26 // |
| 20 // Class derivation of Histogram "deprecated," and should not be copied, and | 27 // Class derivation of Histogram "deprecated," and should not be copied, and |
| 21 // may eventually go away. | 28 // may eventually go away. |
| 22 // | 29 // |
| 23 class StatsHistogram : public base::Histogram { | 30 class StatsHistogram : public base::Histogram { |
| 24 public: | 31 public: |
| 25 class StatsSamples : public SampleSet { | |
| 26 public: | |
| 27 Counts* GetCounts() { | |
| 28 return &counts_; | |
| 29 } | |
| 30 }; | |
| 31 | |
| 32 StatsHistogram(const std::string& name, | 32 StatsHistogram(const std::string& name, |
| 33 Sample minimum, | 33 Sample minimum, |
| 34 Sample maximum, | 34 Sample maximum, |
| 35 size_t bucket_count) | 35 size_t bucket_count, |
| 36 : Histogram(name, minimum, maximum, bucket_count, NULL), init_(false) {} | 36 base::BucketRanges* ranges, |
| 37 const Stats* stats); |
| 37 virtual ~StatsHistogram(); | 38 virtual ~StatsHistogram(); |
| 38 | 39 |
| 39 static StatsHistogram* FactoryGet(const std::string& name); | 40 static void InitializeBucketRanges(const Stats* stats, |
| 41 base::BucketRanges* ranges); |
| 42 static StatsHistogram* FactoryGet(const std::string& name, |
| 43 const Stats* stats); |
| 40 | 44 |
| 41 // We'll be reporting data from the given set of cache stats. | 45 virtual scoped_ptr<base::BucketHistogramSamples> |
| 42 bool Init(const Stats* stats); | 46 SnapshotSamples() const OVERRIDE; |
| 43 | |
| 44 virtual Sample ranges(size_t i) const OVERRIDE; | |
| 45 virtual size_t bucket_count() const OVERRIDE; | |
| 46 virtual void SnapshotSample(SampleSet* sample) const OVERRIDE; | |
| 47 virtual Inconsistencies FindCorruption( | 47 virtual Inconsistencies FindCorruption( |
| 48 const SampleSet& snapshot) const OVERRIDE; | 48 const base::HistogramSamples& samples) const OVERRIDE; |
| 49 | 49 |
| 50 private: | 50 private: |
| 51 bool init_; | 51 const Stats* stats_; |
| 52 static const Stats* stats_; | |
| 53 DISALLOW_COPY_AND_ASSIGN(StatsHistogram); | 52 DISALLOW_COPY_AND_ASSIGN(StatsHistogram); |
| 54 }; | 53 }; |
| 55 | 54 |
| 56 } // namespace disk_cache | 55 } // namespace disk_cache |
| 57 | 56 |
| 58 #endif // NET_DISK_CACHE_STATS_HISTOGRAM_H_ | 57 #endif // NET_DISK_CACHE_STATS_HISTOGRAM_H_ |
| OLD | NEW |