Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(590)

Side by Side Diff: base/metrics/histogram.h

Issue 1256363002: Add support to increase a UMA histogram bucket by an aribitrary integer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: After rebase-update Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | base/metrics/histogram.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // Histogram is an object that aggregates statistics, and can summarize them in 5 // Histogram is an object that aggregates statistics, and can summarize them in
6 // various forms, including ASCII graphical, HTML, and numerically (as a 6 // various forms, including ASCII graphical, HTML, and numerically (as a
7 // vector of numbers corresponding to each of the aggregating buckets). 7 // vector of numbers corresponding to each of the aggregating buckets).
8 8
9 // It supports calls to accumulate either time intervals (which are processed 9 // It supports calls to accumulate either time intervals (which are processed
10 // as integral number of milliseconds), or arbitrary integral units. 10 // as integral number of milliseconds), or arbitrary integral units.
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 Sample* minimum, 174 Sample* minimum,
175 Sample* maximum, 175 Sample* maximum,
176 size_t* bucket_count); 176 size_t* bucket_count);
177 177
178 // HistogramBase implementation: 178 // HistogramBase implementation:
179 HistogramType GetHistogramType() const override; 179 HistogramType GetHistogramType() const override;
180 bool HasConstructionArguments(Sample expected_minimum, 180 bool HasConstructionArguments(Sample expected_minimum,
181 Sample expected_maximum, 181 Sample expected_maximum,
182 size_t expected_bucket_count) const override; 182 size_t expected_bucket_count) const override;
183 void Add(Sample value) override; 183 void Add(Sample value) override;
184 void AddCount(Sample value, int count) override;
184 scoped_ptr<HistogramSamples> SnapshotSamples() const override; 185 scoped_ptr<HistogramSamples> SnapshotSamples() const override;
185 void AddSamples(const HistogramSamples& samples) override; 186 void AddSamples(const HistogramSamples& samples) override;
186 bool AddSamplesFromPickle(base::PickleIterator* iter) override; 187 bool AddSamplesFromPickle(base::PickleIterator* iter) override;
187 void WriteHTMLGraph(std::string* output) const override; 188 void WriteHTMLGraph(std::string* output) const override;
188 void WriteAscii(std::string* output) const override; 189 void WriteAscii(std::string* output) const override;
189 190
190 protected: 191 protected:
191 // |ranges| should contain the underflow and overflow buckets. See top 192 // |ranges| should contain the underflow and overflow buckets. See top
192 // comments for example. 193 // comments for example.
193 Histogram(const std::string& name, 194 Histogram(const std::string& name,
(...skipping 17 matching lines...) Expand all
211 // be a name (or string description) given to the bucket. 212 // be a name (or string description) given to the bucket.
212 virtual const std::string GetAsciiBucketRange(size_t it) const; 213 virtual const std::string GetAsciiBucketRange(size_t it) const;
213 214
214 private: 215 private:
215 // Allow tests to corrupt our innards for testing purposes. 216 // Allow tests to corrupt our innards for testing purposes.
216 FRIEND_TEST_ALL_PREFIXES(HistogramTest, BoundsTest); 217 FRIEND_TEST_ALL_PREFIXES(HistogramTest, BoundsTest);
217 FRIEND_TEST_ALL_PREFIXES(HistogramTest, BucketPlacementTest); 218 FRIEND_TEST_ALL_PREFIXES(HistogramTest, BucketPlacementTest);
218 FRIEND_TEST_ALL_PREFIXES(HistogramTest, CorruptBucketBounds); 219 FRIEND_TEST_ALL_PREFIXES(HistogramTest, CorruptBucketBounds);
219 FRIEND_TEST_ALL_PREFIXES(HistogramTest, CorruptSampleCounts); 220 FRIEND_TEST_ALL_PREFIXES(HistogramTest, CorruptSampleCounts);
220 FRIEND_TEST_ALL_PREFIXES(HistogramTest, NameMatchTest); 221 FRIEND_TEST_ALL_PREFIXES(HistogramTest, NameMatchTest);
222 FRIEND_TEST_ALL_PREFIXES(HistogramTest, AddCountTest);
221 223
222 friend class StatisticsRecorder; // To allow it to delete duplicates. 224 friend class StatisticsRecorder; // To allow it to delete duplicates.
223 friend class StatisticsRecorderTest; 225 friend class StatisticsRecorderTest;
224 226
225 friend BASE_EXPORT_PRIVATE HistogramBase* DeserializeHistogramInfo( 227 friend BASE_EXPORT_PRIVATE HistogramBase* DeserializeHistogramInfo(
226 base::PickleIterator* iter); 228 base::PickleIterator* iter);
227 static HistogramBase* DeserializeInfoImpl(base::PickleIterator* iter); 229 static HistogramBase* DeserializeInfoImpl(base::PickleIterator* iter);
228 230
229 // Implementation of SnapshotSamples function. 231 // Implementation of SnapshotSamples function.
230 scoped_ptr<SampleVector> SnapshotSampleVector() const; 232 scoped_ptr<SampleVector> SnapshotSampleVector() const;
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 static bool ValidateCustomRanges(const std::vector<Sample>& custom_ranges); 434 static bool ValidateCustomRanges(const std::vector<Sample>& custom_ranges);
433 static BucketRanges* CreateBucketRangesFromCustomRanges( 435 static BucketRanges* CreateBucketRangesFromCustomRanges(
434 const std::vector<Sample>& custom_ranges); 436 const std::vector<Sample>& custom_ranges);
435 437
436 DISALLOW_COPY_AND_ASSIGN(CustomHistogram); 438 DISALLOW_COPY_AND_ASSIGN(CustomHistogram);
437 }; 439 };
438 440
439 } // namespace base 441 } // namespace base
440 442
441 #endif // BASE_METRICS_HISTOGRAM_H_ 443 #endif // BASE_METRICS_HISTOGRAM_H_
OLDNEW
« no previous file with comments | « no previous file | base/metrics/histogram.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698