#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