设为首页 加入收藏

TOP

微对象的初入(2)(一)
2019-05-23 14:37:04 】 浏览:143
Tags:对象

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

这里是随笔,不会详述内容,下面都是用实验样例来解释说明。

1。微型对象数据库

例:

{

    "食指":{

        "对象名":"食指"

        "左右手":"左手"

        "属性":[

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

            {"肤色":""},

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

            {"":"0.001公斤"},

            {"":"0.002公斤"},

            {"":"0.001公斤"},

            {"":"0.005公斤"},

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

            。。。

        ]

        "行为":[

            {"":""},

            {"":""},

            {"1":"手势"},

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

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

            。。。

        ]

   }

}

 

1.1 NOSQL库实现

1.1.1 对象类型

 1 enum OB_ENDOBJ_TYPE_T {
 2  OB_ENDOBJ_UNKNOWN = -1,
 3  OB_ENDOBJ_NULL = 1,
 4  OB_ENDOBJ_BOOL = 2,
 5  OB_ENDOBJ_INTEGER = 3,
 6  OB_ENDOBJ_DOUBLE = 4,
 7  OB_ENDOBJ_STRING = 5,
 8  OB_ENDOBJ_ARRAY = 6,
 9  OB_ENDOBJ_OBJECT = 7
10 };

 

1.1.2 结构定义

 1 typedef struct _OB_RESULT_T {  
 2 
 3 bool result;  
 4 
 5 unsigned char* msg;
 6 
 7  unsigned int code;
 8 
 9 }OB_RESULT_T, *POB_RESULT_T;
10 
11 typedef struct _OB_ENDOBJ_T {
12 
13  enum OBJ_TYPE type;
14 
15  size_t len;
16 
17  unsigned char * name;
18 
19  unsigned char * value; 
20 
21 }OB_ENDOBJ_T, *POB_ENDOBJ_T;
22 
23 typedef struct _OB_TREE_NODE_T {
24 
25  POB_ENDOBJ_T obj;
26 
27  struct _OB_TREE_NODE_T* before;
28 
29  struct _OB_TREE_NODE_T* next;
30 
31  struct _OB_TREE_NODE_T* parent;
32 
33  struct _OB_TREE_NODE_T* child;
34 
35 }OB_TREE_NODE_T, *POB_TREE_NODE_T;
36 
37 typedef struct _OB_TREE_HEAD_T {
38 
39  unsigned char ob_name[256];
40 
41  unsigned char ob_hash[1024];
42 
43  unsigned char ob_version[10][256];
44 
45  POB_TREE_NODE_T root;
46 
47 }OB_TREE_HEAD_T, *POB_TREE_HEAD_T;

 

1.1.3 数据操作方法

1.1.3.1 方法定义

 1 // 创建对象 操作方法定义
 2 
 3 OB_API bool __stdcall ob_new_obj_null(POB_ENDOBJ_T* ppobj, POB_RESULT_T* ppresult, OB_STRING_T name, OB_UINT_T len, OB_NULL_T data);
 4 OB_API bool __stdcall ob_new_obj_bool(POB_ENDOBJ_T* ppobj, POB_RESULT_T* ppresult, OB_STRING_T name, OB_UINT_T len, OB_BOOL_T data);
 5 OB_API bool __stdcall ob_new_obj_integer(POB_ENDOBJ_T* ppobj, POB_RESULT_T* ppresult, OB_STRING_T name, OB_UINT_T len, OB_INT_T data);
 6 OB_API bool __stdcall ob_new_obj_double(POB_ENDOBJ_T* ppobj, POB_RESULT_T* ppresult, OB_STRING_T name, OB_UINT_T len, OB_DOUBLE_T data);
 7 OB_API bool __stdcall ob_new_obj_string(POB_ENDOBJ_T* ppobj, POB_RESULT_T* ppresult, OB_STRING_T name, OB_UINT_T len, OB_STRING_T data, OB_UINT_T datalen);
 8 OB_API bool __stdcall ob_new_obj_array(POB_ENDOBJ_T* ppobj, POB_RESULT_T* ppresult, OB_STRING_T name, OB_UINT_T len, OB_ARRAY_T data, enum OB_ENDOBJ_TYPE_T type, OB_UINT_T count);
 9 OB_API bool __stdcall ob_new_obj_array_string(POB_ENDOBJ_T* ppobj, POB_RESULT_T* ppresult, OB_STRING_T name, OB_UINT_T len, OB_ARRAY_STRING_T data, OB_UINT_T count);
10 
11 // 创建对象节点 操作方法定义
12 
13 OB_API bool __stdcall ob_new_node_null(POB_TREE_NODE_T* ppnode, POB_RESULT_T* ppresult, OB_STRING_T name, OB_UINT_T len, OB_NULL_T data);
14 OB_API bool __stdcall ob_new_node_bool(POB_TREE_NODE_T* ppnode, POB_RESULT_T* ppresult, OB_STRING_T name, OB_UINT_T len, OB_BOOL_T data
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇小饭店预约登记管理系统 下一篇4-17疑难点 c语言之【结构体对齐】

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目