Home | History | Annotate | Download | only in disk_cache
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef NET_DISK_CACHE_STATS_HISTOGRAM_H_
      6 #define NET_DISK_CACHE_STATS_HISTOGRAM_H_
      7 
      8 #include <string>
      9 
     10 #include "base/memory/scoped_ptr.h"
     11 #include "base/metrics/histogram.h"
     12 
     13 namespace base {
     14 class BucketRanges;
     15 class HistogramSamples;
     16 class SampleVector;
     17 }  // namespace base
     18 
     19 namespace disk_cache {
     20 
     21 class Stats;
     22 
     23 // This class provides support for sending the disk cache size stats as a UMA
     24 // histogram. We'll provide our own storage and management for the data, and a
     25 // SampleVector with a copy of our data.
     26 //
     27 // Class derivation of Histogram "deprecated," and should not be copied, and
     28 // may eventually go away.
     29 //
     30 class StatsHistogram : public base::Histogram {
     31  public:
     32   StatsHistogram(const std::string& name,
     33                  Sample minimum,
     34                  Sample maximum,
     35                  const base::BucketRanges* ranges,
     36                  const Stats* stats);
     37   virtual ~StatsHistogram();
     38 
     39   static void InitializeBucketRanges(const Stats* stats,
     40                                      base::BucketRanges* ranges);
     41   static StatsHistogram* FactoryGet(const std::string& name,
     42                                     const Stats* stats);
     43 
     44   virtual scoped_ptr<base::HistogramSamples> SnapshotSamples() const OVERRIDE;
     45   virtual int FindCorruption(
     46       const base::HistogramSamples& samples) const OVERRIDE;
     47 
     48  private:
     49   const Stats* stats_;
     50   DISALLOW_COPY_AND_ASSIGN(StatsHistogram);
     51 };
     52 
     53 }  // namespace disk_cache
     54 
     55 #endif  // NET_DISK_CACHE_STATS_HISTOGRAM_H_
     56