summaryrefslogtreecommitdiffstats
path: root/src/database/rrdfunctions-internals.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/rrdfunctions-internals.h')
-rw-r--r--src/database/rrdfunctions-internals.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/database/rrdfunctions-internals.h b/src/database/rrdfunctions-internals.h
new file mode 100644
index 000000000..a846e4de0
--- /dev/null
+++ b/src/database/rrdfunctions-internals.h
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#ifndef NETDATA_RRDFUNCTIONS_INTERNALS_H
+#define NETDATA_RRDFUNCTIONS_INTERNALS_H
+
+#include "rrd.h"
+
+#include "rrdcollector-internals.h"
+
+typedef enum __attribute__((packed)) {
+ RRD_FUNCTION_LOCAL = (1 << 0),
+ RRD_FUNCTION_GLOBAL = (1 << 1),
+ RRD_FUNCTION_DYNCFG = (1 << 2),
+
+ // this is 8-bit
+} RRD_FUNCTION_OPTIONS;
+
+struct rrd_host_function {
+ bool sync; // when true, the function is called synchronously
+ RRD_FUNCTION_OPTIONS options; // RRD_FUNCTION_OPTIONS
+ HTTP_ACCESS access;
+ STRING *help;
+ STRING *tags;
+ int timeout; // the default timeout of the function
+ int priority;
+
+ rrd_function_execute_cb_t execute_cb;
+ void *execute_cb_data;
+
+ struct rrd_collector *collector;
+};
+
+size_t rrd_functions_sanitize(char *dst, const char *src, size_t dst_len);
+int rrd_functions_find_by_name(RRDHOST *host, BUFFER *wb, const char *name, size_t key_length, const DICTIONARY_ITEM **item);
+
+#endif //NETDATA_RRDFUNCTIONS_INTERNALS_H