当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 微对象的初入(2)

微对象的初入(2)

2019年04月19日  | 移动技术网IT编程  | 我要评论

3d画谜总汇,总裁的葬心哑妻,玻璃奶瓶怎么消毒

(一)存储选择:微型对象数据库

这里是随笔,不会详述内容,下面都是用实验样例来解释说明。不明白的可以闪人了。

1。微型对象数据库

例:

{

    "食指":{

        "对象名":"食指"

        "左右手":"左手"

        "属性":[

            {"重量":"0.1公斤"},

            {"肤色":"黄"},

            {"皮肤面积":"0.05平米"},

            {"血":"0.001公斤"},

            {"骨":"0.002公斤"},

            {"皮":"0.001公斤"},

            {"肉":"0.005公斤"},

            {"指甲":{...}},

            。。。

        ]

        "行为":[

            {"掌":""},

            {"拳":""},

            {"1":"手势"},

            {"指示方向":"手势"},

            {"勾勾手":"手势,来我这儿"},

            。。。

        ]

   }

}

1.1 nosql库实现

1.1.1 对象类型

enum ob_endobj_type_t {
 ob_endobj_unknown = -1,
 ob_endobj_null = 1,
 ob_endobj_bool = 2,
 ob_endobj_integer = 3,
 ob_endobj_double = 4,
 ob_endobj_string = 5,
 ob_endobj_array = 6,
 ob_endobj_object = 7
};

1.1.2 结构定义

typedef struct _ob_result_t {  

bool result;  

unsigned char* msg;

 unsigned int code;

}ob_result_t, *pob_result_t;

typedef struct _ob_endobj_t {

 enum obj_type type;

 size_t len;

 unsigned char * name;

 unsigned char * value;

}ob_endobj_t, *pob_endobj_t;

typedef struct _ob_tree_node_t {

 pob_endobj_t obj;

 struct _ob_tree_node_t* before;

 struct _ob_tree_node_t* next;

 struct _ob_tree_node_t* parent;

 struct _ob_tree_node_t* child;

}ob_tree_node_t, *pob_tree_node_t;

typedef struct _ob_tree_head_t {

 unsigned char ob_name[256];

 unsigned char ob_hash[1024];

 unsigned char ob_version[10][256];

 pob_tree_node_t root;

}ob_tree_head_t, *pob_tree_head_t;

1.1.3 数据操作方法

1.1.3.1 方法定义

// 创建对象 操作方法定义

ob_api bool __stdcall ob_new_obj_null(pob_endobj_t* ppobj, pob_result_t* ppresult, unsigned char* name, size_t len);
ob_api bool __stdcall ob_new_obj_bool(pob_endobj_t* ppobj, pob_result_t* ppresult, unsigned char* name, size_t len);
ob_api bool __stdcall ob_new_obj_integer(pob_endobj_t* ppobj, pob_result_t* ppresult, unsigned char* name, size_t len);
ob_api bool __stdcall ob_new_obj_double(pob_endobj_t* ppobj, pob_result_t* ppresult, unsigned char* name, size_t len);
ob_api bool __stdcall ob_new_obj_string(pob_endobj_t* ppobj, pob_result_t* ppresult, unsigned char* name, size_t len, size_t stringlen);
ob_api bool __stdcall ob_new_obj_array(pob_endobj_t* ppobj, pob_result_t* ppresult, unsigned char* name, size_t len, enum obj_type type, size_t count);

// 创建对象节点 操作方法定义

ob_api bool __stdcall ob_new_node_null(pob_tree_node_t* ppnode, pob_result_t* ppresult, unsigned char* name, size_t len);
ob_api bool __stdcall ob_new_node_bool(pob_tree_node_t* ppnode, pob_result_t* ppresult, unsigned char* name, size_t len);
ob_api bool __stdcall ob_new_node_integer(pob_tree_node_t* ppnode, pob_result_t* ppresult, unsigned char* name, size_t len);
ob_api bool __stdcall ob_new_node_double(pob_tree_node_t* ppnode, pob_result_t* ppresult, unsigned char* name, size_t len);
ob_api bool __stdcall ob_new_node_string(pob_tree_node_t* ppnode, pob_result_t* ppresult, unsigned char* name, size_t len, size_t stringlen);
ob_api bool __stdcall ob_new_node_array(pob_tree_node_t* ppnode, pob_result_t* ppresult, unsigned char* name, size_t len, size_t stringlen, enum ob_endobj_type type, size_t count);

// 遍历

pob_tree_node_t _stdcall root(pob_tree_head_t head);
pob_tree_node_t __stdcall next(pob_tree_node_t pnode);
pob_tree_node_t __stdcall before(pob_tree_node_t pnode);
pob_tree_node_t __stdcall child(pob_tree_node_t pnode);
pob_tree_node_t __stdcall parent(pob_tree_node_t pnode);

 

// 创建对象存储

ob_api pob_tree_head_t __stdcall new_ob(unsigned char* ob_name, size_t name_len, unsigned char* ob_version, size_t ver_len);

ob_api bool __stdcall delete_ob(pob_tree_head_t head);

// 对象节点 增删改操作方法定义

ob_api bool __stdcall new_root(pob_tree_head_t head, pob_tree_node_t* ppnode, pob_result_t* ppresult);

ob_api bool __stdcall insert_node(pob_tree_node_t pcurrentnode, pob_tree_node_t* ppnode, pob_result_t* ppresult);

ob_api bool __stdcall delete_node(pob_tree_node_t* ppnode, pob_result_t* ppresult);

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网