12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #ifndef LOG_SDK_LOG_PRODUCER_MANAGER_H
- #define LOG_SDK_LOG_PRODUCER_MANAGER_H
- #include "log_define.h"
- #include "log_producer_config.h"
- #include "log_producer_sender.h"
- #include "log_persistent_manager.h"
- #include "log_builder.h"
- #include "log_queue.h"
- #include "libsharequeue.h"
- #include "log_multi_thread.h"
- typedef struct _log_producer_manager
- {
- log_producer_config* producer_config;
- volatile uint32_t shutdown;
- volatile uint32_t networkRecover;
- volatile uint32_t totalBufferSize;
- volatile long start_time;
- volatile uint32_t pack_index;
- log_queue* loggroup_queue;
- log_queue* sender_data_queue;
- Clibsharequeue* share_queue;
- THREAD* send_threads;
- THREAD* read_thread;
- THREAD* flush_thread;
- THREAD* write_thread;
- CRITICALSECTION lock;
- COND triger_cond;
- log_group_builder* builder;
- on_log_producer_send_done_function send_done_function;
- void* user_param;
- log_producer_send_param** send_param_queue;
- uint64_t send_param_queue_size;
- volatile uint64_t send_param_queue_read;
- volatile uint64_t send_param_queue_write;
- ATOMICINT multi_thread_send_count;
- log_persistent_manager* persistent_manager;
- // used for disk saver
- on_log_producer_send_done_uuid_function uuid_send_done_function;
- void* uuid_user_param;
- }log_producer_manager;
- extern log_producer_manager* create_log_producer_manager(log_producer_config* producer_config);
- extern void destroy_log_producer_manager(log_producer_manager* manager);
- extern log_producer_result log_producer_manager_add_log(log_producer_manager* producer_manager, log_item* log, int flush, long record_time);
- extern log_producer_result log_producer_manager_add_beidou_log(log_producer_manager* producer_manager,
- beidou_log_item* log,
- int flush);
- extern log_producer_result log_producer_manager_add_log_raw(log_producer_manager* producer_manager,
- build_item* log, int flush);
- extern log_producer_result log_producer_manager_add_log_group(log_producer_manager* producer_manager,
- log_group_builder* builder, int flush);
- #endif
|