Changeset 5c925ce in mainline for uspace/app/bithenge/tree.h
- Timestamp:
- 2012-06-07T17:00:12Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8375d0eb
- Parents:
- 5f679702
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/bithenge/tree.h
r5f679702 r5c925ce 57 57 BITHENGE_NODE_INTEGER, 58 58 BITHENGE_NODE_STRING, 59 // TODO:BITHENGE_NODE_BLOB,59 BITHENGE_NODE_BLOB, 60 60 } bithenge_node_type_t; 61 61 … … 63 63 bithenge_node_type_t type; 64 64 union { 65 struct bithenge_internal_node_ops_t *internal_ops;65 const struct bithenge_internal_node_ops_t *internal_ops; 66 66 bool boolean_value; 67 67 bithenge_int_t integer_value; … … 70 70 bool needs_free; 71 71 } string_value; 72 const struct bithenge_random_access_blob_ops_t *blob_ops; 72 73 }; 73 74 } bithenge_node_t; … … 82 83 typedef struct bithenge_internal_node_ops_t { 83 84 int (*for_each)(bithenge_node_t *node, bithenge_for_each_func_t func, void *data); 85 int (*destroy)(bithenge_node_t *node); 84 86 } bithenge_internal_node_ops_t; 85 87 86 88 static inline int bithenge_node_for_each(bithenge_node_t *node, bithenge_for_each_func_t func, void *data) 87 89 { 90 assert(node->type == BITHENGE_NODE_INTERNAL); 88 91 return node->internal_ops->for_each(node, func, data); 89 92 } … … 91 94 static inline bool bithenge_boolean_node_value(bithenge_node_t *node) 92 95 { 96 assert(node->type == BITHENGE_NODE_BOOLEAN); 93 97 return node->boolean_value; 94 98 } … … 96 100 static inline bithenge_int_t bithenge_integer_node_value(bithenge_node_t *node) 97 101 { 102 assert(node->type == BITHENGE_NODE_INTEGER); 98 103 return node->integer_value; 99 104 } … … 101 106 static inline const char *bithenge_string_node_value(bithenge_node_t *node) 102 107 { 108 assert(node->type == BITHENGE_NODE_STRING); 103 109 return node->string_value.ptr; 104 110 }
Note:
See TracChangeset
for help on using the changeset viewer.