X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcommon.h;h=2bdc89495e0154b424980330021bc0537a036162;hb=a3529866c3d98643d7857d2d0ad751c73f312c4e;hp=f463b77e0c3b6f95707a4092d8f5310979ce3b5e;hpb=fd9c88963b04c9e9050a952ba0f018493e8b7638;p=collectd.git diff --git a/src/common.h b/src/common.h index f463b77e..2bdc8949 100644 --- a/src/common.h +++ b/src/common.h @@ -40,6 +40,13 @@ #define STATIC_ARRAY_SIZE(a) (sizeof (a) / sizeof (*(a))) +#define IS_TRUE(s) ((strcasecmp ("true", (s)) == 0) \ + || (strcasecmp ("yes", (s)) == 0) \ + || (strcasecmp ("on", (s)) == 0)) +#define IS_FALSE(s) ((strcasecmp ("false", (s)) == 0) \ + || (strcasecmp ("no", (s)) == 0) \ + || (strcasecmp ("off", (s)) == 0)) + 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); @@ -151,10 +158,46 @@ int strjoin (char *dst, size_t dst_len, char **fields, size_t fields_num, const */ int escape_slashes (char *buf, int buf_len); +/* + * NAME + * replace_special + * + * DESCRIPTION + * Replaces any special characters (anything that's not alpha-numeric or a + * dash) with an underscore. + * + * E.g. "foo$bar&" would become "foo_bar_". + * + * PARAMETERS + * `buffer' String to be handled. + * `buffer_size' Length of the string. The function returns after + * encountering a null-byte or reading this many bytes. + */ +void replace_special (char *buffer, size_t buffer_size); + int strsubstitute (char *str, char c_from, char c_to); -/* FIXME: `timeval_sub_timespec' needs a description */ -int timeval_sub_timespec (struct timeval *tv0, struct timeval *tv1, struct timespec *ret); +/* + * NAME + * timeval_cmp + * + * DESCRIPTION + * Compare the two time values `tv0' and `tv1' and store the absolut value + * of the difference in the time value pointed to by `delta' if it does not + * equal NULL. + * + * RETURN VALUE + * Returns an integer less than, equal to, or greater than zero if `tv0' is + * less than, equal to, or greater than `tv1' respectively. + */ +int timeval_cmp (struct timeval tv0, struct timeval tv1, struct timeval *delta); + +/* make sure tv_usec stores less than a second */ +#define NORMALIZE_TIMEVAL(tv) \ + do { \ + (tv).tv_sec += (tv).tv_usec / 1000000; \ + (tv).tv_usec = (tv).tv_usec % 1000000; \ + } while (0) int check_create_dir (const char *file_orig); @@ -187,6 +230,7 @@ int format_name (char *ret, int ret_len, int parse_identifier (char *str, char **ret_host, char **ret_plugin, char **ret_plugin_instance, char **ret_type, char **ret_type_instance); +int parse_value (char *value, value_t *ret_value, const data_source_t ds); int parse_values (char *buffer, value_list_t *vl, const data_set_t *ds); #if !HAVE_GETPWNAM_R @@ -209,4 +253,6 @@ int walk_directory (const char *dir, dirwalk_callback_f callback, void *user_data); int read_file_contents (const char *filename, char *buf, int bufsize); +counter_t counter_diff (counter_t old_value, counter_t new_value); + #endif /* COMMON_H */