#pragma once #include #include #define DB_VERSION 0xabcd1234 // 如果该数值不一致,则更新清空数据库 typedef struct { const char* name; uint32_t add; uint32_t itermSize; uint32_t itermMaxNum; } zhdb_table_t; typedef struct { uint32_t version; } zhdb_header_t; void zhdb_init(); void zhdb_reg_table_info(const char* name, uint32_t itermSize, uint32_t itermMaxNum); void zhdb_before_run_prepare(); void zhdb_read_table(const char* name, void* cache, uint32_t cachelen); void zhdb_write_item(uint32_t add, const char* data, size_t len); // add // --> readall // --> findNextPos // --> forceFindNextPos // --> write // void // void writetostorage(); // readall() // sort // update() //+++++++++++++++++++++++++++++++++ // cache (dirty) //+++++++++++++++++++++++++++++++++ // storage //+++++++++++++++++++++++++++++++++ // // Dao // find // getALL() -> table_add, table_size, iterm_size, iterm_num (预留的空间越大,则查询的时间越长), // 但这样反而能保证设备的一致性 // delete // // // // 上电之后,遍历所有存储,记录一些速查标记,记录在table结构体里面 // 分页查询, // // 纯内存数据结果呢?上千条记录 // 遍查询,遍筛选数据(可用于分页????) // 分页实现方案,通过条总数 // 如何实现按顺序分页 // // tabl // table_add // table_size // // search all // // delete