log_builder.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #ifndef LOG_BUILDER_H
  2. #define LOG_BUILDER_H
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <stdint.h>
  6. #include "log_define.h"
  7. #include "log_util.h"
  8. #include "log_producer_config.h"
  9. #include "libsharequeue.h"
  10. #ifndef _WIN32
  11. #ifndef MAX_PATH
  12. #define MAX_PATH 260
  13. #endif
  14. #endif
  15. LOG_CPP_START
  16. typedef enum {
  17. LOG_TYPE_USER_SKYEYE, LOG_TYPE_SYS_SKYEYE, LOG_TYPE_BEIDOU, LOG_TYPE_USER_BUSINESS, LOG_TYPE_SYS_BUSINESS, LOG_TYPE_WEBSDK
  18. }build_type_e;
  19. typedef struct _lz4_log_buf {
  20. build_type_e type;
  21. char modular[MAX_PATH];
  22. int n_logs;
  23. char uuid[MAX_LOG_COUNT][MAX_UUID_LEN];
  24. int length;
  25. int raw_length;
  26. unsigned char data[0];
  27. }lz4_log_buf;
  28. typedef struct _build_item {
  29. build_type_e type;
  30. LOG_LEVEL_E level;
  31. char uuid[MAX_UUID_LEN];
  32. uint32_t buffer_len;
  33. char* buffer;
  34. int check;
  35. }build_item;
  36. typedef struct _log_group {
  37. build_item logs[MAX_LOG_COUNT];
  38. int n_logs;
  39. }log_group;
  40. typedef struct _log_group_builder {
  41. log_group* grp;
  42. int loggroup_size;
  43. void* private_value;
  44. uint32_t builder_time;
  45. log_producer_config* config;
  46. char modular[MAX_PATH];
  47. }log_group_builder;
  48. typedef struct _log_buffer {
  49. build_type_e type;
  50. char modular[MAX_PATH];
  51. int n_logs;
  52. char uuid[MAX_LOG_COUNT][MAX_UUID_LEN];
  53. char* buffer;
  54. uint32_t n_buffer;
  55. }log_buf;
  56. typedef struct _serialize_buf {
  57. build_type_e type;
  58. LOG_LEVEL_E level;
  59. char uuid[MAX_UUID_LEN];
  60. uint32_t buffer_len;
  61. char buffer[MAX_SHAREQNODE_SIZE - MAX_UUID_LEN - 64];
  62. }serialize_buf;
  63. extern log_group_builder* log_group_create(log_producer_config* config);
  64. extern log_group_builder* log_group_clone(log_group_builder* bder);
  65. extern void log_group_destroy(log_group_builder* bder);
  66. extern int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log, long record_time);
  67. extern int add_beidou_log(log_group_builder* bder, beidou_log_item* log);
  68. extern int add_log_raw(log_group_builder* bder, build_item* log);
  69. extern int add_log_serialize_buf(log_group_builder* bder, serialize_buf* buffer);
  70. extern void add_log_terminal_no(log_group_builder* bder, char* no);
  71. extern void clear_errJson_msg(log_group_builder* bder);
  72. extern void add_log_terminal_sn_other(log_group_builder* bder, char* sn, char *clientIP);//add other params, decrease create new functions
  73. extern build_item* log_group_get_last(log_group_builder* bder);
  74. extern void log_group_clear_last(log_group_builder* bder);
  75. extern lz4_log_buf* serialize_to_proto_buf_with_malloc_lz4(log_group_builder* bder);
  76. extern lz4_log_buf* serialize_to_proto_buf_with_malloc_no_lz4(log_group_builder* bder);
  77. extern void free_lz4_log_buf(lz4_log_buf* pBuf);
  78. extern void serialize_to_buf(build_item* log, serialize_buf* buf);
  79. LOG_CPP_END
  80. #endif /* log_builder_h */