#ifndef __KV_STORE_H__ #define __KV_STORE_H__ #include #include #include #include #define NETWORK_REACTOR 0 #define NETWORK_PROACTOR 1 #define NETWORK_NTYCO 2 #define NETWORK_SELECT NETWORK_PROACTOR #define KVS_MAX_TOKENS 128 #define ENABLE_ARRAY 1 typedef int (*msg_handler)(char *msg, int length, char *response); extern int reactor_start(unsigned short port, msg_handler handler); extern int proactor_start(unsigned short port, msg_handler handler); extern int ntyco_start(unsigned short port, msg_handler handler); #if ENABLE_ARRAY typedef struct kvs_array_item_s { char *key; char *value; } kvs_array_item_t; #define KVS_ARRAY_SIZE 1024 typedef struct kvs_array_s { kvs_array_item_t *table; int idx; int total; } kvs_array_t; int kvs_array_create(kvs_array_t *inst); void kvs_array_destory(kvs_array_t *inst); int kvs_array_set(kvs_array_t *inst, char *key, char *value); char* kvs_array_get(kvs_array_t *inst, char *key); int kvs_array_del(kvs_array_t *inst, char *key); int kvs_array_mod(kvs_array_t *inst, char *key, char *value); int kvs_array_exist(kvs_array_t *inst, char *key); #endif void *kvs_malloc(size_t size); void kvs_free(void *ptr); #endif