summaryrefslogtreecommitdiff
path: root/chromium/base/metrics/histogram_base.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/base/metrics/histogram_base.cc')
-rw-r--r--chromium/base/metrics/histogram_base.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/chromium/base/metrics/histogram_base.cc b/chromium/base/metrics/histogram_base.cc
index 8d55e92e1dd..ce7fbf16e38 100644
--- a/chromium/base/metrics/histogram_base.cc
+++ b/chromium/base/metrics/histogram_base.cc
@@ -179,6 +179,30 @@ void HistogramBase::FindAndRunCallback(HistogramBase::Sample sample) const {
cb.Run(sample);
}
+void HistogramBase::GetCountAndBucketData(Count* count,
+ int64_t* sum,
+ ListValue* buckets) const {
+ std::unique_ptr<HistogramSamples> snapshot = SnapshotSamples();
+ *count = snapshot->TotalCount();
+ *sum = snapshot->sum();
+ std::unique_ptr<SampleCountIterator> it = snapshot->Iterator();
+ uint32_t index = 0;
+ while (!it->Done()) {
+ std::unique_ptr<DictionaryValue> bucket_value(new DictionaryValue());
+ Sample bucket_min;
+ int64_t bucket_max;
+ Count bucket_count;
+ it->Get(&bucket_min, &bucket_max, &bucket_count);
+
+ bucket_value->SetIntKey("low", bucket_min);
+ bucket_value->SetIntKey("high", bucket_max);
+ bucket_value->SetIntKey("count", bucket_count);
+ buckets->Set(index, std::move(bucket_value));
+ it->Next();
+ ++index;
+ }
+}
+
void HistogramBase::WriteAsciiBucketGraph(double current_size,
double max_size,
std::string* output) const {