main.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #ifndef NETDATA_MAIN_H
  3. #define NETDATA_MAIN_H 1
  4. #include "common.h"
  5. extern struct config netdata_config;
  6. /**
  7. * This struct contains information about command line options.
  8. */
  9. struct option_def {
  10. /** The option character */
  11. const char val;
  12. /** The name of the long option. */
  13. const char *description;
  14. /** Short description what the option does */
  15. /** Name of the argument displayed in SYNOPSIS */
  16. const char *arg_name;
  17. /** Default value if not set */
  18. const char *default_value;
  19. };
  20. void cancel_main_threads(void);
  21. int killpid(pid_t pid);
  22. typedef enum {
  23. ABILITY_DATA_QUERIES = (1 << 0),
  24. ABILITY_WEB_REQUESTS = (1 << 1),
  25. ABILITY_STREAMING_CONNECTIONS = (1 << 2),
  26. SERVICE_MAINTENANCE = (1 << 3),
  27. SERVICE_COLLECTORS = (1 << 4),
  28. SERVICE_REPLICATION = (1 << 5),
  29. SERVICE_WEB_SERVER = (1 << 6),
  30. SERVICE_ACLK = (1 << 7),
  31. SERVICE_HEALTH = (1 << 8),
  32. SERVICE_STREAMING = (1 << 9),
  33. SERVICE_CONTEXT = (1 << 10),
  34. SERVICE_ANALYTICS = (1 << 11),
  35. SERVICE_EXPORTERS = (1 << 12),
  36. SERVICE_ACLKSYNC = (1 << 13),
  37. SERVICE_HTTPD = (1 << 14)
  38. } SERVICE_TYPE;
  39. typedef enum {
  40. SERVICE_THREAD_TYPE_NETDATA,
  41. SERVICE_THREAD_TYPE_LIBUV,
  42. SERVICE_THREAD_TYPE_EVENT_LOOP,
  43. } SERVICE_THREAD_TYPE;
  44. typedef void (*force_quit_t)(void *data);
  45. typedef void (*request_quit_t)(void *data);
  46. void service_exits(void);
  47. bool service_running(SERVICE_TYPE service);
  48. struct service_thread *service_register(SERVICE_THREAD_TYPE thread_type, request_quit_t request_quit_callback, force_quit_t force_quit_callback, void *data, bool update __maybe_unused);
  49. #endif /* NETDATA_MAIN_H */