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 HistogramSamples; |
| 16 class SampleVector; |
| 17 } // namespace base |
| 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 // SampleVector 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 const 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::SampleVector> SnapshotSamples() const OVERRIDE; |
42 bool Init(const Stats* stats); | |
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( | 46 virtual Inconsistencies FindCorruption( |
48 const SampleSet& snapshot) const OVERRIDE; | 47 const base::HistogramSamples& samples) const OVERRIDE; |
49 | 48 |
50 private: | 49 private: |
51 bool init_; | 50 const Stats* stats_; |
52 static const Stats* stats_; | |
53 DISALLOW_COPY_AND_ASSIGN(StatsHistogram); | 51 DISALLOW_COPY_AND_ASSIGN(StatsHistogram); |
54 }; | 52 }; |
55 | 53 |
56 } // namespace disk_cache | 54 } // namespace disk_cache |
57 | 55 |
58 #endif // NET_DISK_CACHE_STATS_HISTOGRAM_H_ | 56 #endif // NET_DISK_CACHE_STATS_HISTOGRAM_H_ |
OLD | NEW |