diff options
Diffstat (limited to 'lib/perfdata.h')
| -rw-r--r-- | lib/perfdata.h | 60 |
1 files changed, 38 insertions, 22 deletions
diff --git a/lib/perfdata.h b/lib/perfdata.h index 74583ee5..e51ef5fd 100644 --- a/lib/perfdata.h +++ b/lib/perfdata.h | |||
| @@ -28,7 +28,7 @@ typedef struct { | |||
| 28 | /* | 28 | /* |
| 29 | * New range type with generic numerical values | 29 | * New range type with generic numerical values |
| 30 | */ | 30 | */ |
| 31 | typedef struct mp_range_struct { | 31 | typedef struct { |
| 32 | mp_perfdata_value start; | 32 | mp_perfdata_value start; |
| 33 | bool start_infinity; /* false (default) or true */ | 33 | bool start_infinity; /* false (default) or true */ |
| 34 | 34 | ||
| @@ -41,11 +41,11 @@ typedef struct mp_range_struct { | |||
| 41 | /* | 41 | /* |
| 42 | * Old range type with floating point values | 42 | * Old range type with floating point values |
| 43 | */ | 43 | */ |
| 44 | typedef struct range_struct { | 44 | typedef struct { |
| 45 | double start; | 45 | double start; |
| 46 | bool start_infinity; | 46 | bool start_infinity; |
| 47 | double end; | 47 | double end; |
| 48 | int end_infinity; | 48 | bool end_infinity; |
| 49 | int alert_on; /* OUTSIDE (default) or INSIDE */ | 49 | int alert_on; /* OUTSIDE (default) or INSIDE */ |
| 50 | char *text; /* original unparsed text input */ | 50 | char *text; /* original unparsed text input */ |
| 51 | } range; | 51 | } range; |
| @@ -53,7 +53,7 @@ typedef struct range_struct { | |||
| 53 | /* | 53 | /* |
| 54 | * Perfdata type for storing perfdata output | 54 | * Perfdata type for storing perfdata output |
| 55 | */ | 55 | */ |
| 56 | typedef struct perfdata_struct { | 56 | typedef struct { |
| 57 | char *label; | 57 | char *label; |
| 58 | char *uom; | 58 | char *uom; |
| 59 | mp_perfdata_value value; | 59 | mp_perfdata_value value; |
| @@ -131,15 +131,15 @@ mp_range_parsed mp_parse_range_string(const char * /*input*/); | |||
| 131 | */ | 131 | */ |
| 132 | void pd_list_append(pd_list[1], mp_perfdata); | 132 | void pd_list_append(pd_list[1], mp_perfdata); |
| 133 | 133 | ||
| 134 | #define mp_set_pd_value(P, V) \ | 134 | #define mp_set_pd_value(P, V) \ |
| 135 | _Generic((V), \ | 135 | _Generic((V), \ |
| 136 | float: mp_set_pd_value_float, \ | 136 | float: mp_set_pd_value_float, \ |
| 137 | double: mp_set_pd_value_double, \ | 137 | double: mp_set_pd_value_double, \ |
| 138 | int: mp_set_pd_value_int, \ | 138 | int: mp_set_pd_value_int, \ |
| 139 | unsigned int: mp_set_pd_value_u_int, \ | 139 | unsigned int: mp_set_pd_value_u_int, \ |
| 140 | long: mp_set_pd_value_long, \ | 140 | long: mp_set_pd_value_long, \ |
| 141 | unsigned long: mp_set_pd_value_u_long, \ | 141 | unsigned long: mp_set_pd_value_u_long, \ |
| 142 | long long: mp_set_pd_value_long_long, \ | 142 | long long: mp_set_pd_value_long_long, \ |
| 143 | unsigned long long: mp_set_pd_value_u_long_long)(P, V) | 143 | unsigned long long: mp_set_pd_value_u_long_long)(P, V) |
| 144 | 144 | ||
| 145 | mp_perfdata mp_set_pd_value_float(mp_perfdata, float); | 145 | mp_perfdata mp_set_pd_value_float(mp_perfdata, float); |
| @@ -151,19 +151,23 @@ mp_perfdata mp_set_pd_value_u_long(mp_perfdata, unsigned long); | |||
| 151 | mp_perfdata mp_set_pd_value_long_long(mp_perfdata, long long); | 151 | mp_perfdata mp_set_pd_value_long_long(mp_perfdata, long long); |
| 152 | mp_perfdata mp_set_pd_value_u_long_long(mp_perfdata, unsigned long long); | 152 | mp_perfdata mp_set_pd_value_u_long_long(mp_perfdata, unsigned long long); |
| 153 | 153 | ||
| 154 | #define mp_create_pd_value(V) \ | 154 | #define mp_create_pd_value(V) \ |
| 155 | _Generic((V), \ | 155 | _Generic((V), \ |
| 156 | float: mp_create_pd_value_float, \ | 156 | float: mp_create_pd_value_float, \ |
| 157 | double: mp_create_pd_value_double, \ | 157 | double: mp_create_pd_value_double, \ |
| 158 | int: mp_create_pd_value_int, \ | 158 | char: mp_create_pd_value_char, \ |
| 159 | unsigned int: mp_create_pd_value_u_int, \ | 159 | unsigned char: mp_create_pd_value_u_char, \ |
| 160 | long: mp_create_pd_value_long, \ | 160 | int: mp_create_pd_value_int, \ |
| 161 | unsigned long: mp_create_pd_value_u_long, \ | 161 | unsigned int: mp_create_pd_value_u_int, \ |
| 162 | long long: mp_create_pd_value_long_long, \ | 162 | long: mp_create_pd_value_long, \ |
| 163 | unsigned long: mp_create_pd_value_u_long, \ | ||
| 164 | long long: mp_create_pd_value_long_long, \ | ||
| 163 | unsigned long long: mp_create_pd_value_u_long_long)(V) | 165 | unsigned long long: mp_create_pd_value_u_long_long)(V) |
| 164 | 166 | ||
| 165 | mp_perfdata_value mp_create_pd_value_float(float); | 167 | mp_perfdata_value mp_create_pd_value_float(float); |
| 166 | mp_perfdata_value mp_create_pd_value_double(double); | 168 | mp_perfdata_value mp_create_pd_value_double(double); |
| 169 | mp_perfdata_value mp_create_pd_value_char(char); | ||
| 170 | mp_perfdata_value mp_create_pd_value_u_char(unsigned char); | ||
| 167 | mp_perfdata_value mp_create_pd_value_int(int); | 171 | mp_perfdata_value mp_create_pd_value_int(int); |
| 168 | mp_perfdata_value mp_create_pd_value_u_int(unsigned int); | 172 | mp_perfdata_value mp_create_pd_value_u_int(unsigned int); |
| 169 | mp_perfdata_value mp_create_pd_value_long(long); | 173 | mp_perfdata_value mp_create_pd_value_long(long); |
| @@ -171,6 +175,11 @@ mp_perfdata_value mp_create_pd_value_u_long(unsigned long); | |||
| 171 | mp_perfdata_value mp_create_pd_value_long_long(long long); | 175 | mp_perfdata_value mp_create_pd_value_long_long(long long); |
| 172 | mp_perfdata_value mp_create_pd_value_u_long_long(unsigned long long); | 176 | mp_perfdata_value mp_create_pd_value_u_long_long(unsigned long long); |
| 173 | 177 | ||
| 178 | mp_perfdata mp_set_pd_max_value(mp_perfdata perfdata, mp_perfdata_value value); | ||
| 179 | mp_perfdata mp_set_pd_min_value(mp_perfdata perfdata, mp_perfdata_value value); | ||
| 180 | |||
| 181 | double mp_get_pd_value(mp_perfdata_value value); | ||
| 182 | |||
| 174 | /* | 183 | /* |
| 175 | * Free the memory used by a pd_list | 184 | * Free the memory used by a pd_list |
| 176 | */ | 185 | */ |
| @@ -178,6 +187,13 @@ void pd_list_free(pd_list[1]); | |||
| 178 | 187 | ||
| 179 | int cmp_perfdata_value(mp_perfdata_value, mp_perfdata_value); | 188 | int cmp_perfdata_value(mp_perfdata_value, mp_perfdata_value); |
| 180 | 189 | ||
| 190 | // ================ | ||
| 191 | // Helper functions | ||
| 192 | // ================ | ||
| 193 | |||
| 194 | mp_perfdata_value mp_pd_value_multiply(mp_perfdata_value left, mp_perfdata_value right); | ||
| 195 | mp_range mp_range_multiply(mp_range range, mp_perfdata_value factor); | ||
| 196 | |||
| 181 | // ================= | 197 | // ================= |
| 182 | // String formatters | 198 | // String formatters |
| 183 | // ================= | 199 | // ================= |
