Index: base/metrics/histogram.h |
diff --git a/base/metrics/histogram.h b/base/metrics/histogram.h |
index 4e722aa20d91da7a1a0cd318150ee1a40c266830..ea59de64c249352aec0ef3876c753852e35b6d02 100644 |
--- a/base/metrics/histogram.h |
+++ b/base/metrics/histogram.h |
@@ -145,8 +145,10 @@ class BASE_EXPORT Histogram : public HistogramBase { |
Sample maximum, |
const BucketRanges* ranges, |
HistogramBase::AtomicCount* counts, |
+ HistogramBase::AtomicCount* logged_counts, |
uint32_t counts_size, |
- HistogramSamples::Metadata* meta); |
+ HistogramSamples::Metadata* meta, |
+ HistogramSamples::Metadata* logged_meta); |
static void InitializeBucketRanges(Sample minimum, |
Sample maximum, |
@@ -165,8 +167,9 @@ class BASE_EXPORT Histogram : public HistogramBase { |
// consistent with the bucket ranges and checksums in our histogram. This can |
// produce a false-alarm if a race occurred in the reading of the data during |
// a SnapShot process, but should otherwise be false at all times (unless we |
- // have memory over-writes, or DRAM failures). |
- int FindCorruption(const HistogramSamples& samples) const override; |
+ // have memory over-writes, or DRAM failures). Flag definitions are located |
+ // under "enum Inconsistency" in base/metrics/histogram_base.h. |
+ uint32_t FindCorruption(const HistogramSamples& samples) const override; |
//---------------------------------------------------------------------------- |
// Accessors for factory construction, serialization and testing. |
@@ -197,6 +200,7 @@ class BASE_EXPORT Histogram : public HistogramBase { |
void Add(Sample value) override; |
void AddCount(Sample value, int count) override; |
scoped_ptr<HistogramSamples> SnapshotSamples() const override; |
+ scoped_ptr<HistogramSamples> SnapshotDelta() override; |
void AddSamples(const HistogramSamples& samples) override; |
bool AddSamplesFromPickle(base::PickleIterator* iter) override; |
void WriteHTMLGraph(std::string* output) const override; |
@@ -228,8 +232,10 @@ class BASE_EXPORT Histogram : public HistogramBase { |
Sample maximum, |
const BucketRanges* ranges, |
HistogramBase::AtomicCount* counts, |
+ HistogramBase::AtomicCount* logged_counts, |
uint32_t counts_size, |
- HistogramSamples::Metadata* meta); |
+ HistogramSamples::Metadata* meta, |
+ HistogramSamples::Metadata* logged_meta); |
~Histogram() override; |
@@ -303,6 +309,9 @@ class BASE_EXPORT Histogram : public HistogramBase { |
// sample. |
scoped_ptr<SampleVector> samples_; |
+ // Also keep a previous uploaded state for calculating deltas. |
+ scoped_ptr<HistogramSamples> logged_samples_; |
+ |
DISALLOW_COPY_AND_ASSIGN(Histogram); |
}; |
@@ -347,8 +356,10 @@ class BASE_EXPORT LinearHistogram : public Histogram { |
Sample maximum, |
const BucketRanges* ranges, |
HistogramBase::AtomicCount* counts, |
+ HistogramBase::AtomicCount* logged_counts, |
uint32_t counts_size, |
- HistogramSamples::Metadata* meta); |
+ HistogramSamples::Metadata* meta, |
+ HistogramSamples::Metadata* logged_meta); |
struct DescriptionPair { |
Sample sample; |
@@ -388,8 +399,10 @@ class BASE_EXPORT LinearHistogram : public Histogram { |
Sample maximum, |
const BucketRanges* ranges, |
HistogramBase::AtomicCount* counts, |
+ HistogramBase::AtomicCount* logged_counts, |
uint32_t counts_size, |
- HistogramSamples::Metadata* meta); |
+ HistogramSamples::Metadata* meta, |
+ HistogramSamples::Metadata* logged_meta); |
double GetBucketSize(Count current, uint32_t i) const override; |
@@ -431,7 +444,9 @@ class BASE_EXPORT BooleanHistogram : public LinearHistogram { |
static HistogramBase* PersistentGet(const std::string& name, |
const BucketRanges* ranges, |
HistogramBase::AtomicCount* counts, |
- HistogramSamples::Metadata* meta); |
+ HistogramBase::AtomicCount* logged_counts, |
+ HistogramSamples::Metadata* meta, |
+ HistogramSamples::Metadata* logged_meta); |
HistogramType GetHistogramType() const override; |
@@ -443,7 +458,9 @@ class BASE_EXPORT BooleanHistogram : public LinearHistogram { |
BooleanHistogram(const std::string& name, |
const BucketRanges* ranges, |
HistogramBase::AtomicCount* counts, |
- HistogramSamples::Metadata* meta); |
+ HistogramBase::AtomicCount* logged_counts, |
+ HistogramSamples::Metadata* meta, |
+ HistogramSamples::Metadata* logged_meta); |
friend BASE_EXPORT HistogramBase* DeserializeHistogramInfo( |
base::PickleIterator* iter); |
@@ -476,8 +493,10 @@ class BASE_EXPORT CustomHistogram : public Histogram { |
static HistogramBase* PersistentGet(const std::string& name, |
const BucketRanges* ranges, |
HistogramBase::AtomicCount* counts, |
+ HistogramBase::AtomicCount* logged_counts, |
uint32_t counts_size, |
- HistogramSamples::Metadata* meta); |
+ HistogramSamples::Metadata* meta, |
+ HistogramSamples::Metadata* logged_meta); |
// Overridden from Histogram: |
HistogramType GetHistogramType() const override; |
@@ -499,8 +518,10 @@ class BASE_EXPORT CustomHistogram : public Histogram { |
CustomHistogram(const std::string& name, |
const BucketRanges* ranges, |
HistogramBase::AtomicCount* counts, |
+ HistogramBase::AtomicCount* logged_counts, |
uint32_t counts_size, |
- HistogramSamples::Metadata* meta); |
+ HistogramSamples::Metadata* meta, |
+ HistogramSamples::Metadata* logged_meta); |
// HistogramBase implementation: |
bool SerializeInfoImpl(base::Pickle* pickle) const override; |