pluginsd_functions.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #ifndef NETDATA_PLUGINSD_FUNCTIONS_H
  3. #define NETDATA_PLUGINSD_FUNCTIONS_H
  4. #include "pluginsd_internals.h"
  5. struct inflight_function {
  6. uuid_t transaction;
  7. int code;
  8. int timeout_s;
  9. STRING *function;
  10. BUFFER *payload;
  11. HTTP_ACCESS access;
  12. const char *source;
  13. BUFFER *result_body_wb;
  14. usec_t *stop_monotonic_ut; // pointer to caller data
  15. usec_t started_monotonic_ut;
  16. usec_t sent_monotonic_ut;
  17. PARSER *parser;
  18. bool sent_successfully;
  19. struct {
  20. rrd_function_result_callback_t cb;
  21. void *data;
  22. } result;
  23. struct {
  24. rrd_function_progress_cb_t cb;
  25. void *data;
  26. } progress;
  27. };
  28. PARSER_RC pluginsd_function(char **words, size_t num_words, PARSER *parser);
  29. PARSER_RC pluginsd_function_result_begin(char **words, size_t num_words, PARSER *parser);
  30. PARSER_RC pluginsd_function_progress(char **words, size_t num_words, PARSER *parser);
  31. void pluginsd_inflight_functions_init(PARSER *parser);
  32. void pluginsd_inflight_functions_cleanup(PARSER *parser);
  33. void pluginsd_inflight_functions_garbage_collect(PARSER *parser, usec_t now_ut);
  34. int pluginsd_function_execute_cb(struct rrd_function_execute *rfe, void *data);
  35. #endif //NETDATA_PLUGINSD_FUNCTIONS_H