#ifndef LOG_SDK_LOG_PERSISTENT_MANAGER_H #define LOG_SDK_LOG_PERSISTENT_MANAGER_H #include "log_inner_include.h" #include "log_producer_config.h" #include "log_db.h" typedef struct _log_persistent_manager { CRITICALSECTION lock; log_producer_config* config; log_db_manager* db_manager; volatile uint32_t InsertLogCount; volatile uint32_t LastCleanLogCount; volatile uint32_t SendLogCount; char* db_name; }log_persistent_manager; log_persistent_manager* create_log_persistent_manager(log_producer_config* config); void destroy_log_persistent_manager(log_persistent_manager* manager); void on_log_persistent_manager_send_done_uuid( log_producer_result result, int log_bytes, int compressed_bytes, const char* req_id, const char* error_message, const unsigned char* raw_buffer, void* persistent_manager, int send_count, char uuid[MAX_LOG_COUNT][MAX_UUID_LEN], char* modular); int log_persistent_manager_transaction_begin(log_persistent_manager* manager); int log_persistent_manager_transaction_commit(log_persistent_manager* manager); int log_persistent_manager_save_log_group(log_persistent_manager* manager, log_group_builder* builder); int log_persistent_manager_save_log(log_persistent_manager* manager, serialize_buf* buf); log_group_builder* log_persistent_manager_get_log(log_persistent_manager* manager); int log_persistent_manager_delete_log(log_persistent_manager* manager, char* uuid); int log_persistent_manager_updata_log_status(log_persistent_manager* manager, char* modular, int count, char uuid[][MAX_UUID_LEN], log_db_status_e status); int log_persistent_manager_recover(log_persistent_manager* manager); int log_persistent_manager_clean(log_persistent_manager* manager, char* modular); #endif //LOG_SDK_LOG_PERSISTENT_MANAGER_H