summaryrefslogtreecommitdiffstats
path: root/src/database/rrdfunctions-internals.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 11:19:16 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-07-24 09:53:24 +0000
commitb5f8ee61a7f7e9bd291dd26b0585d03eb686c941 (patch)
treed4d31289c39fc00da064a825df13a0b98ce95b10 /src/database/rrdfunctions-internals.h
parentAdding upstream version 1.44.3. (diff)
downloadnetdata-upstream.tar.xz
netdata-upstream.zip
Adding upstream version 1.46.3.upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
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