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 // 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 // See header file for details and examples. | 8 // See header file for details and examples. |
9 | 9 |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
876 return true; | 876 return true; |
877 } | 877 } |
878 | 878 |
879 double CustomHistogram::GetBucketSize(Count current, size_t i) const { | 879 double CustomHistogram::GetBucketSize(Count current, size_t i) const { |
880 return 1; | 880 return 1; |
881 } | 881 } |
882 | 882 |
883 // static | 883 // static |
884 bool CustomHistogram::ValidateCustomRanges( | 884 bool CustomHistogram::ValidateCustomRanges( |
885 const vector<Sample>& custom_ranges) { | 885 const vector<Sample>& custom_ranges) { |
886 if (custom_ranges.size() < 1) | 886 int valid_ranges = 0; |
jar (doing other things)
2012/08/03 21:53:42
Suggest use boolean:
bool valid_ranges = false;
t
kaiwang
2012/08/03 22:15:53
Done.
| |
887 return false; | |
888 for (size_t i = 0; i < custom_ranges.size(); i++) { | 887 for (size_t i = 0; i < custom_ranges.size(); i++) { |
889 Sample s = custom_ranges[i]; | 888 Sample s = custom_ranges[i]; |
jar (doing other things)
2012/08/03 21:53:42
nit: (on existing code): Please use |sample| inste
kaiwang
2012/08/03 22:15:53
Done.
| |
890 if (s < 0 || s > HistogramBase::kSampleType_MAX - 1) | 889 if (s < 0 || s > HistogramBase::kSampleType_MAX - 1) |
891 return false; | 890 return false; |
891 if (s != 0) | |
892 valid_ranges++; | |
892 } | 893 } |
893 return true; | 894 return valid_ranges > 0; |
894 } | 895 } |
895 | 896 |
896 // static | 897 // static |
897 BucketRanges* CustomHistogram::CreateBucketRangesFromCustomRanges( | 898 BucketRanges* CustomHistogram::CreateBucketRangesFromCustomRanges( |
898 const vector<Sample>& custom_ranges) { | 899 const vector<Sample>& custom_ranges) { |
899 // Remove the duplicates in the custom ranges array. | 900 // Remove the duplicates in the custom ranges array. |
900 vector<int> ranges = custom_ranges; | 901 vector<int> ranges = custom_ranges; |
901 ranges.push_back(0); // Ensure we have a zero value. | 902 ranges.push_back(0); // Ensure we have a zero value. |
902 ranges.push_back(HistogramBase::kSampleType_MAX); | 903 ranges.push_back(HistogramBase::kSampleType_MAX); |
903 std::sort(ranges.begin(), ranges.end()); | 904 std::sort(ranges.begin(), ranges.end()); |
904 ranges.erase(std::unique(ranges.begin(), ranges.end()), ranges.end()); | 905 ranges.erase(std::unique(ranges.begin(), ranges.end()), ranges.end()); |
905 | 906 |
906 BucketRanges* bucket_ranges = new BucketRanges(ranges.size()); | 907 BucketRanges* bucket_ranges = new BucketRanges(ranges.size()); |
907 for (size_t i = 0; i < ranges.size(); i++) { | 908 for (size_t i = 0; i < ranges.size(); i++) { |
908 bucket_ranges->set_range(i, ranges[i]); | 909 bucket_ranges->set_range(i, ranges[i]); |
909 } | 910 } |
910 bucket_ranges->ResetChecksum(); | 911 bucket_ranges->ResetChecksum(); |
911 return bucket_ranges; | 912 return bucket_ranges; |
912 } | 913 } |
913 | 914 |
914 } // namespace base | 915 } // namespace base |
OLD | NEW |