rbtree和hash的全量持久化操作。rbtree的二进制安全。
粗略测试。
This commit is contained in:
@@ -16,6 +16,8 @@ int kvs_write_u32(uint8_t **pp, const uint8_t *end, uint32_t v);
|
||||
int kvs_write_file(FILE *fp, const void *buf, size_t n);
|
||||
int kvs_read_file(FILE *fp, void *buf, size_t n);
|
||||
|
||||
int write_full(int fd, const void *buf, size_t len);
|
||||
int read_full(int fd, void *buf, size_t n);
|
||||
|
||||
/**
|
||||
* Request
|
||||
@@ -39,7 +41,7 @@ enum {
|
||||
KVS_STATUS_BADREQ = 4
|
||||
};
|
||||
|
||||
enum {
|
||||
typedef enum {
|
||||
KVS_CMD_START = 0,
|
||||
// array
|
||||
KVS_CMD_SET = KVS_CMD_START,
|
||||
@@ -62,7 +64,7 @@ enum {
|
||||
|
||||
KVS_CMD_SAVE,
|
||||
KVS_CMD_COUNT,
|
||||
};
|
||||
}kvs_cmd_t;
|
||||
|
||||
typedef struct kvs_arg_s{
|
||||
uint32_t len;
|
||||
@@ -70,13 +72,13 @@ typedef struct kvs_arg_s{
|
||||
} kvs_arg_t;
|
||||
|
||||
typedef struct kvs_req_s{
|
||||
uint8_t op;
|
||||
kvs_cmd_t op;
|
||||
uint8_t argc;
|
||||
kvs_arg_t *args;
|
||||
}kvs_req_t;
|
||||
|
||||
typedef struct kvs_rsp_s{
|
||||
uint8_t op;
|
||||
kvs_cmd_t op;
|
||||
uint8_t status;
|
||||
uint32_t dlen;
|
||||
const uint8_t *data;
|
||||
|
||||
Reference in New Issue
Block a user