log_producer_manager.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #ifndef LOG_SDK_LOG_PRODUCER_MANAGER_H
  2. #define LOG_SDK_LOG_PRODUCER_MANAGER_H
  3. #include "log_define.h"
  4. #include "log_producer_config.h"
  5. #include "log_producer_sender.h"
  6. #include "log_persistent_manager.h"
  7. #include "log_builder.h"
  8. #include "log_queue.h"
  9. #include "libsharequeue.h"
  10. #include "log_multi_thread.h"
  11. typedef struct _log_producer_manager
  12. {
  13. log_producer_config* producer_config;
  14. volatile uint32_t shutdown;
  15. volatile uint32_t networkRecover;
  16. volatile uint32_t totalBufferSize;
  17. volatile long start_time;
  18. volatile uint32_t pack_index;
  19. log_queue* loggroup_queue;
  20. log_queue* sender_data_queue;
  21. Clibsharequeue* share_queue;
  22. THREAD* send_threads;
  23. THREAD* read_thread;
  24. THREAD* flush_thread;
  25. THREAD* write_thread;
  26. CRITICALSECTION lock;
  27. COND triger_cond;
  28. log_group_builder* builder;
  29. on_log_producer_send_done_function send_done_function;
  30. void* user_param;
  31. log_producer_send_param** send_param_queue;
  32. uint64_t send_param_queue_size;
  33. volatile uint64_t send_param_queue_read;
  34. volatile uint64_t send_param_queue_write;
  35. ATOMICINT multi_thread_send_count;
  36. log_persistent_manager* persistent_manager;
  37. // used for disk saver
  38. on_log_producer_send_done_uuid_function uuid_send_done_function;
  39. void* uuid_user_param;
  40. }log_producer_manager;
  41. extern log_producer_manager* create_log_producer_manager(log_producer_config* producer_config);
  42. extern void destroy_log_producer_manager(log_producer_manager* manager);
  43. extern log_producer_result log_producer_manager_add_log(log_producer_manager* producer_manager, log_item* log, int flush, long record_time);
  44. extern log_producer_result log_producer_manager_add_beidou_log(log_producer_manager* producer_manager,
  45. beidou_log_item* log,
  46. int flush);
  47. extern log_producer_result log_producer_manager_add_log_raw(log_producer_manager* producer_manager,
  48. build_item* log, int flush);
  49. extern log_producer_result log_producer_manager_add_log_group(log_producer_manager* producer_manager,
  50. log_group_builder* builder, int flush);
  51. #endif