pluginsd_functions.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. const char *source;
  12. BUFFER *result_body_wb;
  13. usec_t *stop_monotonic_ut; // pointer to caller data
  14. usec_t started_monotonic_ut;
  15. usec_t sent_monotonic_ut;
  16. PARSER *parser;
  17. bool sent_successfully;
  18. struct {
  19. rrd_function_result_callback_t cb;
  20. void *data;
  21. } result;
  22. struct {
  23. rrd_function_progress_cb_t cb;
  24. void *data;
  25. } progress;
  26. };
  27. PARSER_RC pluginsd_function(char **words, size_t num_words, PARSER *parser);
  28. PARSER_RC pluginsd_function_result_begin(char **words, size_t num_words, PARSER *parser);
  29. PARSER_RC pluginsd_function_progress(char **words, size_t num_words, PARSER *parser);
  30. void pluginsd_inflight_functions_init(PARSER *parser);
  31. void pluginsd_inflight_functions_cleanup(PARSER *parser);
  32. void pluginsd_inflight_functions_garbage_collect(PARSER *parser, usec_t now_ut);
  33. int pluginsd_function_execute_cb(struct rrd_function_execute *rfe, void *data);
  34. #endif //NETDATA_PLUGINSD_FUNCTIONS_H