src/database/rrdfunctions-internals.h
// 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