123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- #ifndef BASE_METRICS_HISTOGRAM_FUNCTIONS_H_
- #define BASE_METRICS_HISTOGRAM_FUNCTIONS_H_
- #include <type_traits>
- #include "base/metrics/histogram.h"
- #include "base/metrics/histogram_base.h"
- #include "base/time/time.h"
- namespace base {
- BASE_EXPORT void UmaHistogramExactLinear(const std::string& name,
- int sample,
- int value_max);
- BASE_EXPORT void UmaHistogramExactLinear(const char* name,
- int sample,
- int value_max);
- template <typename T>
- void UmaHistogramEnumeration(const std::string& name, T sample) {
- static_assert(std::is_enum<T>::value, "T is not an enum.");
-
-
- static_assert(static_cast<uintmax_t>(T::kMaxValue) <=
- static_cast<uintmax_t>(INT_MAX) - 1,
- "Enumeration's kMaxValue is out of range of INT_MAX!");
- DCHECK_LE(static_cast<uintmax_t>(sample),
- static_cast<uintmax_t>(T::kMaxValue));
- return UmaHistogramExactLinear(name, static_cast<int>(sample),
- static_cast<int>(T::kMaxValue) + 1);
- }
- template <typename T>
- void UmaHistogramEnumeration(const char* name, T sample) {
- static_assert(std::is_enum<T>::value, "T is not an enum.");
-
-
- static_assert(static_cast<uintmax_t>(T::kMaxValue) <=
- static_cast<uintmax_t>(INT_MAX) - 1,
- "Enumeration's kMaxValue is out of range of INT_MAX!");
- DCHECK_LE(static_cast<uintmax_t>(sample),
- static_cast<uintmax_t>(T::kMaxValue));
- return UmaHistogramExactLinear(name, static_cast<int>(sample),
- static_cast<int>(T::kMaxValue) + 1);
- }
- template <typename T>
- void UmaHistogramEnumeration(const std::string& name, T sample, T enum_size) {
- static_assert(std::is_enum<T>::value, "T is not an enum.");
- DCHECK_LE(static_cast<uintmax_t>(enum_size), static_cast<uintmax_t>(INT_MAX));
- DCHECK_LT(static_cast<uintmax_t>(sample), static_cast<uintmax_t>(enum_size));
- return UmaHistogramExactLinear(name, static_cast<int>(sample),
- static_cast<int>(enum_size));
- }
- template <typename T>
- void UmaHistogramEnumeration(const char* name, T sample, T enum_size) {
- static_assert(std::is_enum<T>::value, "T is not an enum.");
- DCHECK_LE(static_cast<uintmax_t>(enum_size), static_cast<uintmax_t>(INT_MAX));
- DCHECK_LT(static_cast<uintmax_t>(sample), static_cast<uintmax_t>(enum_size));
- return UmaHistogramExactLinear(name, static_cast<int>(sample),
- static_cast<int>(enum_size));
- }
- BASE_EXPORT void UmaHistogramBoolean(const std::string& name, bool sample);
- BASE_EXPORT void UmaHistogramBoolean(const char* name, bool sample);
- BASE_EXPORT void UmaHistogramPercentage(const std::string& name, int percent);
- BASE_EXPORT void UmaHistogramPercentage(const char* name, int percent);
- BASE_EXPORT void UmaHistogramCustomCounts(const std::string& name,
- int sample,
- int min,
- int max,
- int buckets);
- BASE_EXPORT void UmaHistogramCustomCounts(const char* name,
- int sample,
- int min,
- int max,
- int buckets);
- BASE_EXPORT void UmaHistogramCounts100(const std::string& name, int sample);
- BASE_EXPORT void UmaHistogramCounts100(const char* name, int sample);
- BASE_EXPORT void UmaHistogramCounts1000(const std::string& name, int sample);
- BASE_EXPORT void UmaHistogramCounts1000(const char* name, int sample);
- BASE_EXPORT void UmaHistogramCounts10000(const std::string& name, int sample);
- BASE_EXPORT void UmaHistogramCounts10000(const char* name, int sample);
- BASE_EXPORT void UmaHistogramCounts100000(const std::string& name, int sample);
- BASE_EXPORT void UmaHistogramCounts100000(const char* name, int sample);
- BASE_EXPORT void UmaHistogramCounts1M(const std::string& name, int sample);
- BASE_EXPORT void UmaHistogramCounts1M(const char* name, int sample);
- BASE_EXPORT void UmaHistogramCounts10M(const std::string& name, int sample);
- BASE_EXPORT void UmaHistogramCounts10M(const char* name, int sample);
- BASE_EXPORT void UmaHistogramCustomTimes(const std::string& name,
- TimeDelta sample,
- TimeDelta min,
- TimeDelta max,
- int buckets);
- BASE_EXPORT void UmaHistogramCustomTimes(const char* name,
- TimeDelta sample,
- TimeDelta min,
- TimeDelta max,
- int buckets);
- BASE_EXPORT void UmaHistogramTimes(const std::string& name, TimeDelta sample);
- BASE_EXPORT void UmaHistogramTimes(const char* name, TimeDelta sample);
- BASE_EXPORT void UmaHistogramMediumTimes(const std::string& name,
- TimeDelta sample);
- BASE_EXPORT void UmaHistogramMediumTimes(const char* name, TimeDelta sample);
- BASE_EXPORT void UmaHistogramLongTimes(const std::string& name,
- TimeDelta sample);
- BASE_EXPORT void UmaHistogramLongTimes(const char* name, TimeDelta sample);
- BASE_EXPORT void UmaHistogramLongTimes100(const std::string& name,
- TimeDelta sample);
- BASE_EXPORT void UmaHistogramLongTimes100(const char* name, TimeDelta sample);
- BASE_EXPORT void UmaHistogramCustomMicrosecondsTimes(const std::string& name,
- TimeDelta sample,
- TimeDelta min,
- TimeDelta max,
- int buckets);
- BASE_EXPORT void UmaHistogramCustomMicrosecondsTimes(const char* name,
- TimeDelta sample,
- TimeDelta min,
- TimeDelta max,
- int buckets);
- BASE_EXPORT void UmaHistogramMicrosecondsTimes(const std::string& name,
- TimeDelta sample);
- BASE_EXPORT void UmaHistogramMicrosecondsTimes(const char* name,
- TimeDelta sample);
- BASE_EXPORT void UmaHistogramMicrosecondsTimesUnderTenMilliseconds(
- const std::string& name,
- TimeDelta sample);
- BASE_EXPORT void UmaHistogramMicrosecondsTimesUnderTenMilliseconds(
- const char* name,
- TimeDelta sample);
- BASE_EXPORT void UmaHistogramMemoryKB(const std::string& name, int sample);
- BASE_EXPORT void UmaHistogramMemoryKB(const char* name, int sample);
- BASE_EXPORT void UmaHistogramMemoryMB(const std::string& name, int sample);
- BASE_EXPORT void UmaHistogramMemoryMB(const char* name, int sample);
- BASE_EXPORT void UmaHistogramMemoryLargeMB(const std::string& name, int sample);
- BASE_EXPORT void UmaHistogramMemoryLargeMB(const char* name, int sample);
- BASE_EXPORT void UmaHistogramSparse(const std::string& name, int sample);
- BASE_EXPORT void UmaHistogramSparse(const char* name, int sample);
- }
- #endif
|