log_builder.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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 _build_item {
  20. build_type_e type;
  21. LOG_LEVEL_E level;
  22. char uuid[MAX_UUID_LEN];
  23. uint32_t buffer_len;
  24. char* buffer;
  25. int check;
  26. }build_item;
  27. //10kb
  28. #define MAX_LOG_LEN 10000
  29. typedef struct _build_item2 {
  30. build_type_e type;
  31. LOG_LEVEL_E level;
  32. char uuid[MAX_UUID_LEN];
  33. uint32_t buffer_len;
  34. char buffer[MAX_LOG_LEN];
  35. int check;
  36. }build_item2;
  37. typedef struct _lz4_log_buf {
  38. build_type_e type;
  39. char modular[MAX_PATH];
  40. int n_logs;
  41. char uuid[MAX_LOG_COUNT][MAX_UUID_LEN];
  42. int length;
  43. int raw_length;
  44. build_item2 src_logs[MAX_LOG_COUNT];//use for resend
  45. unsigned char data[0];
  46. }lz4_log_buf;
  47. typedef struct _log_group {
  48. build_item logs[MAX_LOG_COUNT];
  49. int n_logs;
  50. }log_group;
  51. typedef struct _log_group_builder {
  52. log_group* grp;
  53. int loggroup_size;
  54. void* private_value;
  55. uint32_t builder_time;
  56. log_producer_config* config;
  57. char modular[MAX_PATH];
  58. }log_group_builder;
  59. typedef struct _log_buffer {
  60. build_type_e type;
  61. char modular[MAX_PATH];
  62. int n_logs;
  63. char uuid[MAX_LOG_COUNT][MAX_UUID_LEN];
  64. char* buffer;
  65. uint32_t n_buffer;
  66. }log_buf;
  67. typedef struct _serialize_buf {
  68. build_type_e type;
  69. LOG_LEVEL_E level;
  70. char uuid[MAX_UUID_LEN];
  71. uint32_t buffer_len;
  72. char buffer[MAX_SHAREQNODE_SIZE - MAX_UUID_LEN - 64];
  73. }serialize_buf;
  74. extern log_group_builder* log_group_create(log_producer_config* config);
  75. extern log_group_builder* log_group_clone(log_group_builder* bder);
  76. extern void log_group_destroy(log_group_builder* bder);
  77. extern int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log, long record_time);
  78. extern int add_beidou_log(log_group_builder* bder, beidou_log_item* log);
  79. extern int add_log_raw(log_group_builder* bder, build_item* log);
  80. extern int add_log_raw2(log_group_builder* bder, build_item2* log);
  81. extern int add_log_serialize_buf(log_group_builder* bder, serialize_buf* buffer);
  82. extern void add_log_terminal_no(log_group_builder* bder, char* no);
  83. extern void clear_errJson_msg(log_group_builder* bder);
  84. extern void add_log_terminal_sn_other(log_group_builder* bder, char* sn, char *clientIP);//add other params, decrease create new functions
  85. extern build_item* log_group_get_last(log_group_builder* bder);
  86. extern void log_group_clear_last(log_group_builder* bder);
  87. extern lz4_log_buf* serialize_to_proto_buf_with_malloc_lz4(log_group_builder* bder);
  88. extern lz4_log_buf* serialize_to_proto_buf_with_malloc_no_lz4(log_group_builder* bder);
  89. extern void free_lz4_log_buf(lz4_log_buf* pBuf);
  90. extern void serialize_to_buf(build_item* log, serialize_buf* buf);
  91. LOG_CPP_END
  92. #endif /* log_builder_h */