]> git.itanic.dy.fi Git - rrdd/blobdiff - parser.h
Parsers: Implement framework for registering and querying parsers
[rrdd] / parser.h
index 5ec6a8e26340b6d510c6cc8dc2304803fe72ae1b..b5718e018672e35c2c937d8583bfb4ff29778787 100644 (file)
--- a/parser.h
+++ b/parser.h
@@ -1,17 +1,17 @@
 #ifndef _PARSER_H
 #define _PARSER_H
 
-#define RRD_DATA_MAX_LEN       4096
+typedef int (parse_fn_t)(char *rrd_data, const char **parser_data);
+
+struct parser_info {
+       struct parser_info *next;
+       const char *name;
+       parse_fn_t *parse;
+};
 
-int cpu_parser(char *data, const char **p);
-int mem_parser(char *data, const char **p);
-int cpu_mem_parser(char *data, const char **p);
-int digitemp_parser(char *data, const char **p);
-int digitemp_parser_mod(char *data, const char **p);
-int script_parser(char *rrd_data, const char **parser_data);
-int netstats_parser(char *rrd_data, const char **parser_data);
-int onewire_parser(char *rrd_data, const char **parser_data);
+int register_parser(struct parser_info *info);
+struct parser_info *str_to_parser(const char *str);
 
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#define RRD_DATA_MAX_LEN       4096
 
 #endif