uDATA 数据模型
定义
uDATA 采用的键值形成来保存数据对。其中键与值都支持任意数据类型,支持int、char、float、string、object:
typedef struct _udata uData;
typedef struct _value Value;
struct _value {
int type;
int updated;
union {
int v_int;
unsigned char v_bool;
float v_float;
char *v_str;
uData *v_obj;
};
};
struct _udata {
slist_t head;
Value key;
Value value;
};
接口定义
创建 uData
uData *yoc_udata_new();
释放 uData
void yoc_udata_free(uData *data);
根据 key 获取 value
uData *yoc_udata_get(uData *data, Value key);
将key、value 写入 uData
int yoc_udata_set(uData *data, Value key, Value value, int force_set_update_flag);
清除所有数据的状态标记
void yoc_udata_clear_flag_all(uData *data);
设置指定键的数据状态
int yoc_udata_set_flag(uData *udata, Value key, int flag);
格式化打印 uData
int yoc_data_print(uData *data);
将 uData 转成 json
int yoc_udata_to_json(uData *data, char *buffer, size_t len, int check_update);
将 json 字符串加载到 uData
int yoc_udata_from_json(uData *data, char *json);