#ifndef LOG_BUILDER_H #define LOG_BUILDER_H #include #include #include #include "log_define.h" #include "log_util.h" #include "log_producer_config.h" #include "libsharequeue.h" #ifndef _WIN32 #ifndef MAX_PATH #define MAX_PATH 260 #endif #endif LOG_CPP_START typedef enum { LOG_TYPE_USER_SKYEYE, LOG_TYPE_SYS_SKYEYE, LOG_TYPE_BEIDOU, LOG_TYPE_USER_BUSINESS, LOG_TYPE_SYS_BUSINESS, LOG_TYPE_WEBSDK }build_type_e; typedef struct _lz4_log_buf { build_type_e type; char modular[MAX_PATH]; int n_logs; char uuid[MAX_LOG_COUNT][MAX_UUID_LEN]; int length; int raw_length; unsigned char data[0]; }lz4_log_buf; typedef struct _build_item { build_type_e type; LOG_LEVEL_E level; char uuid[MAX_UUID_LEN]; uint32_t buffer_len; char* buffer; int check; }build_item; typedef struct _log_group { build_item logs[MAX_LOG_COUNT]; int n_logs; }log_group; typedef struct _log_group_builder { log_group* grp; int loggroup_size; void* private_value; uint32_t builder_time; log_producer_config* config; char modular[MAX_PATH]; }log_group_builder; typedef struct _log_buffer { build_type_e type; char modular[MAX_PATH]; int n_logs; char uuid[MAX_LOG_COUNT][MAX_UUID_LEN]; char* buffer; uint32_t n_buffer; }log_buf; typedef struct _serialize_buf { build_type_e type; LOG_LEVEL_E level; char uuid[MAX_UUID_LEN]; uint32_t buffer_len; char buffer[MAX_SHAREQNODE_SIZE - MAX_UUID_LEN - 64]; }serialize_buf; extern log_group_builder* log_group_create(log_producer_config* config); extern log_group_builder* log_group_clone(log_group_builder* bder); extern void log_group_destroy(log_group_builder* bder); extern int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log, long record_time); extern int add_beidou_log(log_group_builder* bder, beidou_log_item* log); extern int add_log_raw(log_group_builder* bder, build_item* log); extern int add_log_serialize_buf(log_group_builder* bder, serialize_buf* buffer); extern void add_log_terminal_no(log_group_builder* bder, char* no); extern void clear_errJson_msg(log_group_builder* bder); extern void add_log_terminal_sn_other(log_group_builder* bder, char* sn, char *clientIP);//add other params, decrease create new functions extern build_item* log_group_get_last(log_group_builder* bder); extern void log_group_clear_last(log_group_builder* bder); extern lz4_log_buf* serialize_to_proto_buf_with_malloc_lz4(log_group_builder* bder); extern lz4_log_buf* serialize_to_proto_buf_with_malloc_no_lz4(log_group_builder* bder); extern void free_lz4_log_buf(lz4_log_buf* pBuf); extern void serialize_to_buf(build_item* log, serialize_buf* buf); LOG_CPP_END #endif /* log_builder_h */