Merge branch 'collectd-5.6' into collectd-5.7
[collectd.git] / src / daemon / utils_match.h
index ad999cd..1383530 100644 (file)
@@ -28,6 +28,7 @@
 #define UTILS_MATCH_H 1
 
 #include "plugin.h"
+#include "utils_latency.h"
 
 /*
  * Each type may have 12 sub-types
@@ -46,6 +47,8 @@
 #define UTILS_MATCH_CF_GAUGE_LAST 0x08
 #define UTILS_MATCH_CF_GAUGE_INC 0x10
 #define UTILS_MATCH_CF_GAUGE_ADD 0x20
+#define UTILS_MATCH_CF_GAUGE_PERSIST 0x40
+#define UTILS_MATCH_CF_GAUGE_DIST 0x80
 
 #define UTILS_MATCH_CF_COUNTER_SET 0x01
 #define UTILS_MATCH_CF_COUNTER_ADD 0x02
@@ -69,6 +72,7 @@ struct cu_match_value_s {
   int ds_type;
   value_t value;
   unsigned int values_num;
+  latency_counter_t *latency;
 };
 typedef struct cu_match_value_s cu_match_value_t;
 
@@ -92,12 +96,14 @@ typedef struct cu_match_value_s cu_match_value_t;
  *  callback.
  *  The optional `excluderegex' allows to exclude the line from the match, if
  *  the excluderegex matches.
+ *  When `match_destroy' is called the `user_data' pointer is freed using
+ *  the `free_user_data' callback - if it is not NULL.
  */
 cu_match_t *
 match_create_callback(const char *regex, const char *excluderegex,
                       int (*callback)(const char *str, char *const *matches,
                                       size_t matches_num, void *user_data),
-                      void *user_data);
+                      void *user_data, void (*free_user_data)(void *user_data));
 
 /*
  * NAME