log_persistent_manager.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef LOG_SDK_LOG_PERSISTENT_MANAGER_H
  2. #define LOG_SDK_LOG_PERSISTENT_MANAGER_H
  3. #include "log_inner_include.h"
  4. #include "log_producer_config.h"
  5. #include "log_db.h"
  6. typedef struct _log_persistent_manager {
  7. CRITICALSECTION lock;
  8. log_producer_config* config;
  9. log_db_manager* db_manager;
  10. volatile uint32_t InsertLogCount;
  11. volatile uint32_t LastCleanLogCount;
  12. volatile uint32_t SendLogCount;
  13. char* db_name;
  14. }log_persistent_manager;
  15. log_persistent_manager* create_log_persistent_manager(log_producer_config* config);
  16. void destroy_log_persistent_manager(log_persistent_manager* manager);
  17. void on_log_persistent_manager_send_done_uuid(
  18. log_producer_result result,
  19. int log_bytes,
  20. int compressed_bytes,
  21. const char* req_id,
  22. const char* error_message,
  23. const unsigned char* raw_buffer,
  24. void* persistent_manager,
  25. int send_count,
  26. char uuid[MAX_LOG_COUNT][MAX_UUID_LEN],
  27. char* modular);
  28. int log_persistent_manager_transaction_begin(log_persistent_manager* manager);
  29. int log_persistent_manager_transaction_commit(log_persistent_manager* manager);
  30. int log_persistent_manager_save_log_group(log_persistent_manager* manager, log_group_builder* builder);
  31. int log_persistent_manager_save_log(log_persistent_manager* manager, serialize_buf* buf);
  32. log_group_builder* log_persistent_manager_get_log(log_persistent_manager* manager);
  33. int log_persistent_manager_delete_log(log_persistent_manager* manager, char* uuid);
  34. int log_persistent_manager_updata_log_status(log_persistent_manager* manager,
  35. char* modular, int count, char uuid[][MAX_UUID_LEN], log_db_status_e status);
  36. int log_persistent_manager_recover(log_persistent_manager* manager);
  37. int log_persistent_manager_clean(log_persistent_manager* manager, char* modular);
  38. #endif //LOG_SDK_LOG_PERSISTENT_MANAGER_H