src/common.[ch]: Implement strtogauge().
authorFlorian Forster <octo@collectd.org>
Wed, 10 Sep 2014 14:15:40 +0000 (16:15 +0200)
committerFlorian Forster <octo@collectd.org>
Wed, 10 Sep 2014 14:57:03 +0000 (16:57 +0200)
src/common.c
src/common.h

index 8691d3e..5386739 100644 (file)
@@ -1543,6 +1543,26 @@ int strtoderive (const char *string, derive_t *ret_value) /* {{{ */
        return (0);
 } /* }}} int strtoderive */
 
+int strtogauge (const char *string, gauge_t *ret_value) /* {{{ */
+{
+       gauge_t tmp;
+       char *endptr = NULL;
+
+       if ((string == NULL) || (ret_value == NULL))
+               return (EINVAL);
+
+       errno = 0;
+       endptr = NULL;
+       tmp = (gauge_t) strtod (string, &endptr);
+       if (errno != 0)
+               return (errno);
+       else if ((endptr == NULL) || (*endptr != 0))
+               return (EINVAL);
+
+       *ret_value = tmp;
+       return (0);
+} /* }}} int strtogauge */
+
 int strarray_add (char ***ret_array, size_t *ret_array_len, char const *str) /* {{{ */
 {
        char **array;
index b2e4c67..434ed01 100644 (file)
@@ -347,6 +347,10 @@ int service_name_to_port_number (const char *service_name);
  * failure. If failure is returned, ret_value is not touched. */
 int strtoderive (const char *string, derive_t *ret_value);
 
+/** Parse a string to a gauge_t value. Returns zero on success or non-zero on
+ * failure. If failure is returned, ret_value is not touched. */
+int strtogauge (const char *string, gauge_t *ret_value);
+
 int strarray_add (char ***ret_array, size_t *ret_array_len, char const *str);
 void strarray_free (char **array, size_t array_len);