Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::stats::detail Namespace Reference

Classes

struct  is_chrono_duration
 Type trait to detect std::chrono::duration types. More...
 
struct  is_chrono_duration< std::chrono::duration< Rep, Period > >
 

Functions

template<typename T >
constexpr T zero_value ()
 Get zero value for a type.
 
template<typename T >
constexpr T max_value ()
 Get maximum value for a type.
 
template<typename T >
constexpr T min_value ()
 Get minimum (lowest) value for a type.
 
template<typename T >
divide (const T &value, size_t count)
 Divide value by count.
 

Variables

template<typename T >
constexpr bool is_chrono_duration_v = is_chrono_duration<T>::value
 

Function Documentation

◆ divide()

template<typename T >
T kcenon::monitoring::stats::detail::divide ( const T & value,
size_t count )

Divide value by count.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/utils/statistics.h.

Definition at line 99 of file statistics.h.

99 {
100 if (count == 0) {
101 return zero_value<T>();
102 }
103 if constexpr (is_chrono_duration_v<T>) {
104 return value / static_cast<typename T::rep>(count);
105 } else {
106 return value / static_cast<T>(count);
107 }
108}

References is_chrono_duration_v, and zero_value().

Referenced by kcenon::monitoring::stats::compute_sorted().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ max_value()

template<typename T >
T kcenon::monitoring::stats::detail::max_value ( )
constexpr

Get maximum value for a type.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/utils/statistics.h.

Definition at line 75 of file statistics.h.

75 {
76 if constexpr (is_chrono_duration_v<T>) {
77 return T::max();
78 } else {
79 return std::numeric_limits<T>::max();
80 }
81}

References is_chrono_duration_v.

◆ min_value()

template<typename T >
T kcenon::monitoring::stats::detail::min_value ( )
constexpr

Get minimum (lowest) value for a type.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/utils/statistics.h.

Definition at line 87 of file statistics.h.

87 {
88 if constexpr (is_chrono_duration_v<T>) {
89 return T::min();
90 } else {
91 return std::numeric_limits<T>::lowest();
92 }
93}

References is_chrono_duration_v.

◆ zero_value()

template<typename T >
T kcenon::monitoring::stats::detail::zero_value ( )
constexpr

Get zero value for a type.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/utils/statistics.h.

Definition at line 63 of file statistics.h.

63 {
64 if constexpr (is_chrono_duration_v<T>) {
65 return T::zero();
66 } else {
67 return T{0};
68 }
69}

References is_chrono_duration_v.

Referenced by kcenon::monitoring::stats::compute_sorted(), divide(), and kcenon::monitoring::stats::percentile().

Here is the caller graph for this function:

Variable Documentation

◆ is_chrono_duration_v

template<typename T >
bool kcenon::monitoring::stats::detail::is_chrono_duration_v = is_chrono_duration<T>::value
inlineconstexpr