Changeset 8375d0eb in mainline for uspace/app/bithenge/tree.h


Ignore:
Timestamp:
2012-06-08T07:02:55Z (12 years ago)
Author:
Sean Bartell <wingedtachikoma@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8b36bf2
Parents:
5c925ce
Message:

Bithenge: add Doxygen comments

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/bithenge/tree.h

    r5c925ce r8375d0eb  
    5151#endif
    5252
     53/** Indicates the type of a tree node. */
    5354typedef enum {
    54         BITHENGE_NODE_NONE,
    55         BITHENGE_NODE_INTERNAL,
     55        /** An internal node with labelled edges to other nodes. */
     56        BITHENGE_NODE_INTERNAL = 1,
     57        /** A leaf node holding a boolean value. */
    5658        BITHENGE_NODE_BOOLEAN,
     59        /** A leaf node holding an integer. */
    5760        BITHENGE_NODE_INTEGER,
     61        /** A leaf node holding a string. */
    5862        BITHENGE_NODE_STRING,
     63        /** A leaf node holding a binary blob. */
    5964        BITHENGE_NODE_BLOB,
    6065} bithenge_node_type_t;
    6166
    6267typedef struct bithenge_node_t {
     68        /** @privatesection */
    6369        bithenge_node_type_t type;
    6470        union {
     
    7480} bithenge_node_t;
    7581
     82/** A callback function used to iterate over a node's children.
     83 * @memberof bithenge_node_t
     84 * @param key The key.
     85 * @param value The value.
     86 * @param data Data provided to @a bithenge_node_t::bithenge_node_for_each.
     87 * @return EOK on success or an error code from errno.h. */
     88typedef int (*bithenge_for_each_func_t)(bithenge_node_t *key, bithenge_node_t *value, void *data);
     89
     90/** Operations providing access to an internal node. */
     91typedef struct bithenge_internal_node_ops_t {
     92        /** @copydoc bithenge_node_t::bithenge_node_for_each */
     93        int (*for_each)(bithenge_node_t *node, bithenge_for_each_func_t func, void *data);
     94        /** @copydoc bithenge_node_t::bithenge_node_destroy */
     95        int (*destroy)(bithenge_node_t *node);
     96} bithenge_internal_node_ops_t;
     97
     98/** Find the type of a node.
     99 * @memberof bithenge_node_t
     100 * @param node The node.
     101 * @return The type of the node. */
    76102static inline bithenge_node_type_t bithenge_node_type(const bithenge_node_t *node)
    77103{
     
    79105}
    80106
    81 typedef int (*bithenge_for_each_func_t)(bithenge_node_t *key, bithenge_node_t *value, void *data);
    82 
    83 typedef struct bithenge_internal_node_ops_t {
    84         int (*for_each)(bithenge_node_t *node, bithenge_for_each_func_t func, void *data);
    85         int (*destroy)(bithenge_node_t *node);
    86 } bithenge_internal_node_ops_t;
    87 
     107/** Iterate over a node's children.
     108 * @memberof bithenge_node_t
     109 * @param node The internal node to iterate over.
     110 * @param func The callback function.
     111 * @param data Data to provide to the callback function.
     112 * @return EOK on success or an error code from errno.h. */
    88113static inline int bithenge_node_for_each(bithenge_node_t *node, bithenge_for_each_func_t func, void *data)
    89114{
     
    92117}
    93118
     119/** Get the value of a boolean node.
     120 * @memberof bithenge_node_t
     121 * @param node The boolean node.
     122 * @return The node's value. */
    94123static inline bool bithenge_boolean_node_value(bithenge_node_t *node)
    95124{
     
    98127}
    99128
     129/** Get the value of an integer node.
     130 * @memberof bithenge_node_t
     131 * @param node The integer node.
     132 * @return The node's value. */
    100133static inline bithenge_int_t bithenge_integer_node_value(bithenge_node_t *node)
    101134{
     
    104137}
    105138
     139/** Get the value of an string node.
     140 * @memberof bithenge_node_t
     141 * @param node The string node.
     142 * @return The node's value. */
    106143static inline const char *bithenge_string_node_value(bithenge_node_t *node)
    107144{
     
    110147}
    111148
    112 int bithenge_new_simple_internal_node(bithenge_node_t **, bithenge_node_t **, bithenge_int_t, bool needs_free);
     149int bithenge_new_simple_internal_node(bithenge_node_t **, bithenge_node_t **,
     150    bithenge_int_t, bool needs_free);
    113151int bithenge_new_boolean_node(bithenge_node_t **, bool);
    114152int bithenge_new_integer_node(bithenge_node_t **, bithenge_int_t);
Note: See TracChangeset for help on using the changeset viewer.