X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fcommon.h;h=8a7d986534919efa65e449c17313882f363cce93;hb=1e74bb66c61d965c4aa261adfaf058f3356cff09;hp=c0bea36effacfe7390d8a790014a271fc7ce69e7;hpb=593ea76dca367478b92e17f91e663fe7c67b4df9;p=collectd.git diff --git a/src/common.h b/src/common.h index c0bea36e..8a7d9865 100644 --- a/src/common.h +++ b/src/common.h @@ -1,6 +1,6 @@ /** * collectd - src/common.h - * Copyright (C) 2005-2009 Florian octo Forster + * Copyright (C) 2005-2010 Florian octo Forster * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,7 +16,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Authors: - * Florian octo Forster + * Florian octo Forster * Niki W. Waibel **/ @@ -47,6 +47,14 @@ || (strcasecmp ("no", (s)) == 0) \ || (strcasecmp ("off", (s)) == 0)) +struct rate_to_value_state_s +{ + value_t last_value; + cdtime_t last_time; + gauge_t residual; +}; +typedef struct rate_to_value_state_s rate_to_value_state_t; + char *sstrncpy (char *dest, const char *src, size_t n); int ssnprintf (char *dest, size_t n, const char *format, ...); char *sstrdup(const char *s); @@ -258,10 +266,14 @@ int format_name (char *ret, int ret_len, #define FORMAT_VL(ret, ret_len, vl) \ format_name (ret, ret_len, (vl)->host, (vl)->plugin, (vl)->plugin_instance, \ (vl)->type, (vl)->type_instance) +int format_values (char *ret, size_t ret_len, + const data_set_t *ds, const value_list_t *vl, + _Bool store_rates); int parse_identifier (char *str, char **ret_host, char **ret_plugin, char **ret_plugin_instance, char **ret_type, char **ret_type_instance); +int parse_identifier_vl (const char *str, value_list_t *vl); int parse_value (const char *value, value_t *ret_value, int ds_type); int parse_values (char *buffer, value_list_t *vl, const data_set_t *ds); @@ -274,23 +286,35 @@ int notification_init (notification_t *n, int severity, const char *message, const char *host, const char *plugin, const char *plugin_instance, const char *type, const char *type_instance); -#define NOTIFICATION_INIT_VL(n, vl, ds) \ +#define NOTIFICATION_INIT_VL(n, vl) \ notification_init (n, NOTIF_FAILURE, NULL, \ (vl)->host, (vl)->plugin, (vl)->plugin_instance, \ - (ds)->type, (vl)->type_instance) + (vl)->type, (vl)->type_instance) typedef int (*dirwalk_callback_f)(const char *dirname, const char *filename, void *user_data); int walk_directory (const char *dir, dirwalk_callback_f callback, void *user_data, int hidden); +/* Returns the number of bytes read or negative on error. */ int read_file_contents (const char *filename, char *buf, int bufsize); counter_t counter_diff (counter_t old_value, counter_t new_value); +/* Convert a rate back to a value_t. When converting to a derive_t, counter_t + * or absoltue_t, take fractional residuals into account. This is important + * when scaling counters, for example. + * Returns zero on success. Returns EAGAIN when called for the first time; in + * this case the value_t is invalid and the next call should succeed. Other + * return values indicate an error. */ +int rate_to_value (value_t *ret_value, gauge_t rate, + rate_to_value_state_t *state, int ds_type, cdtime_t t); + /* Converts a service name (a string) to a port number * (in the range [1-65535]). Returns less than zero on error. */ int service_name_to_port_number (const char *service_name); +/** Parse a string to a derive_t value. Returns zero on success or non-zero on + * failure. If failure is returned, ret_value is not touched. */ int strtoderive (const char *string, derive_t *ret_value); #endif /* COMMON_H */