inc/ecu/ntnode.h Source File
|
ECU
|
ntnode.h
Go to the documentation of this file.
902 extern void ecu_ntnode_insert_sibling_after(struct ecu_ntnode *pos, struct ecu_ntnode *sibling);
915 extern void ecu_ntnode_insert_sibling_before(struct ecu_ntnode *pos, struct ecu_ntnode *sibling);
986 extern const struct ecu_ntnode *ecu_ntnode_clca(const struct ecu_ntnode *n1, const struct ecu_ntnode *n2);
1126 extern struct ecu_ntnode *ecu_ntnode_child_iterator_begin(struct ecu_ntnode_child_iterator *me,
1149 extern struct ecu_ntnode *ecu_ntnode_child_iterator_next(struct ecu_ntnode_child_iterator *me);
1166 extern const struct ecu_ntnode *ecu_ntnode_child_iterator_cbegin(struct ecu_ntnode_child_citerator *me,
1179 extern const struct ecu_ntnode *ecu_ntnode_child_iterator_cend(struct ecu_ntnode_child_citerator *me);
1191 extern const struct ecu_ntnode *ecu_ntnode_child_iterator_cnext(struct ecu_ntnode_child_citerator *me);
1214 extern struct ecu_ntnode *ecu_ntnode_next_sibling_iterator_at(struct ecu_ntnode_next_sibling_iterator *me,
1231 extern struct ecu_ntnode *ecu_ntnode_next_sibling_iterator_begin(struct ecu_ntnode_next_sibling_iterator *me,
1243 extern struct ecu_ntnode *ecu_ntnode_next_sibling_iterator_end(struct ecu_ntnode_next_sibling_iterator *me);
1254 extern struct ecu_ntnode *ecu_ntnode_next_sibling_iterator_next(struct ecu_ntnode_next_sibling_iterator *me);
1269 extern const struct ecu_ntnode *ecu_ntnode_next_sibling_iterator_cat(struct ecu_ntnode_next_sibling_citerator *me,
1287 extern const struct ecu_ntnode *ecu_ntnode_next_sibling_iterator_cbegin(struct ecu_ntnode_next_sibling_citerator *me,
1300 extern const struct ecu_ntnode *ecu_ntnode_next_sibling_iterator_cend(struct ecu_ntnode_next_sibling_citerator *me);
1312 extern const struct ecu_ntnode *ecu_ntnode_next_sibling_iterator_cnext(struct ecu_ntnode_next_sibling_citerator *me);
1351 extern struct ecu_ntnode *ecu_ntnode_parent_iterator_begin(struct ecu_ntnode_parent_iterator *me,
1363 extern struct ecu_ntnode *ecu_ntnode_parent_iterator_end(struct ecu_ntnode_parent_iterator *me);
1374 extern struct ecu_ntnode *ecu_ntnode_parent_iterator_next(struct ecu_ntnode_parent_iterator *me);
1389 extern const struct ecu_ntnode *ecu_ntnode_parent_iterator_cat(struct ecu_ntnode_parent_citerator *me,
1406 extern const struct ecu_ntnode *ecu_ntnode_parent_iterator_cbegin(struct ecu_ntnode_parent_citerator *me,
1419 extern const struct ecu_ntnode *ecu_ntnode_parent_iterator_cend(struct ecu_ntnode_parent_citerator *me);
1431 extern const struct ecu_ntnode *ecu_ntnode_parent_iterator_cnext(struct ecu_ntnode_parent_citerator *me);
1455 extern struct ecu_ntnode *ecu_ntnode_postorder_iterator_begin(struct ecu_ntnode_postorder_iterator *me,
1470 extern struct ecu_ntnode *ecu_ntnode_postorder_iterator_end(struct ecu_ntnode_postorder_iterator *me);
1481 extern struct ecu_ntnode *ecu_ntnode_postorder_iterator_next(struct ecu_ntnode_postorder_iterator *me);
1497 extern const struct ecu_ntnode *ecu_ntnode_postorder_iterator_cbegin(struct ecu_ntnode_postorder_citerator *me,
1513 extern const struct ecu_ntnode *ecu_ntnode_postorder_iterator_cend(struct ecu_ntnode_postorder_citerator *me);
1525 extern const struct ecu_ntnode *ecu_ntnode_postorder_iterator_cnext(struct ecu_ntnode_postorder_citerator *me);
1550 extern struct ecu_ntnode *ecu_ntnode_preorder_iterator_begin(struct ecu_ntnode_preorder_iterator *me,
1565 extern struct ecu_ntnode *ecu_ntnode_preorder_iterator_end(struct ecu_ntnode_preorder_iterator *me);
1576 extern struct ecu_ntnode *ecu_ntnode_preorder_iterator_next(struct ecu_ntnode_preorder_iterator *me);
1593 extern const struct ecu_ntnode *ecu_ntnode_preorder_iterator_cbegin(struct ecu_ntnode_preorder_citerator *me,
1609 extern const struct ecu_ntnode *ecu_ntnode_preorder_iterator_cend(struct ecu_ntnode_preorder_citerator *me);
1621 extern const struct ecu_ntnode *ecu_ntnode_preorder_iterator_cnext(struct ecu_ntnode_preorder_citerator *me);
1644 extern struct ecu_ntnode *ecu_ntnode_prev_sibling_iterator_at(struct ecu_ntnode_prev_sibling_iterator *me,
1661 extern struct ecu_ntnode *ecu_ntnode_prev_sibling_iterator_begin(struct ecu_ntnode_prev_sibling_iterator *me,
1673 extern struct ecu_ntnode *ecu_ntnode_prev_sibling_iterator_end(struct ecu_ntnode_prev_sibling_iterator *me);
1684 extern struct ecu_ntnode *ecu_ntnode_prev_sibling_iterator_next(struct ecu_ntnode_prev_sibling_iterator *me);
1699 extern const struct ecu_ntnode *ecu_ntnode_prev_sibling_iterator_cat(struct ecu_ntnode_prev_sibling_citerator *me,
1717 extern const struct ecu_ntnode *ecu_ntnode_prev_sibling_iterator_cbegin(struct ecu_ntnode_prev_sibling_citerator *me,
1730 extern const struct ecu_ntnode *ecu_ntnode_prev_sibling_iterator_cend(struct ecu_ntnode_prev_sibling_citerator *me);
1742 extern const struct ecu_ntnode *ecu_ntnode_prev_sibling_iterator_cnext(struct ecu_ntnode_prev_sibling_citerator *me);
1765 extern struct ecu_ntnode *ecu_ntnode_sibling_iterator_begin(struct ecu_ntnode_sibling_iterator *me,
1777 extern struct ecu_ntnode *ecu_ntnode_sibling_iterator_end(struct ecu_ntnode_sibling_iterator *me);
1788 extern struct ecu_ntnode *ecu_ntnode_sibling_iterator_next(struct ecu_ntnode_sibling_iterator *me);
1803 extern const struct ecu_ntnode *ecu_ntnode_sibling_iterator_cbegin(struct ecu_ntnode_sibling_citerator *me,
1816 extern const struct ecu_ntnode *ecu_ntnode_sibling_iterator_cend(struct ecu_ntnode_sibling_citerator *me);
1828 extern const struct ecu_ntnode *ecu_ntnode_sibling_iterator_cnext(struct ecu_ntnode_sibling_citerator *me);
const struct ecu_ntnode * ecu_ntnode_parent_iterator_cbegin(struct ecu_ntnode_parent_citerator *me, const struct ecu_ntnode *start)
Const-qualified version of ecu_ntnode_parent_iterator_begin(). Starts an iteration over all parents,...
const struct ecu_ntnode * ecu_ntnode_sibling_iterator_cend(struct ecu_ntnode_sibling_citerator *me)
Const-qualified version of ecu_ntnode_sibling_iterator_end(). Returns the ending node in the iteratio...
struct ecu_ntnode * ecu_ntnode_parent_iterator_next(struct ecu_ntnode_parent_iterator *me)
Returns the next parent in the iteration.
struct ecu_ntnode * ecu_ntnode_child_iterator_next(struct ecu_ntnode_child_iterator *me)
Returns the next child in the iteration.
const struct ecu_ntnode * ecu_ntnode_child_iterator_cnext(struct ecu_ntnode_child_citerator *me)
Const-qualified version of ecu_ntnode_child_iterator_next(). Returns the next child in the iteration.
struct ecu_ntnode * ecu_ntnode_next(struct ecu_ntnode *me)
Returns the node's next (right) sibling. NULL is returned if the node is the last (rightmost) sibling...
bool ecu_ntnode_is_leaf(const struct ecu_ntnode *me)
Returns true if the node is a leaf, meaning it has no children. False otherwise. Note that this retur...
void ecu_ntnode_ctor(struct ecu_ntnode *me, void(*destroy)(struct ecu_ntnode *me, ecu_object_id_t id), ecu_object_id_t id)
Node constructor.
bool ecu_ntnode_is_root(const struct ecu_ntnode *me)
Returns true if the node is a root, meaning it has no parent. False otherwise. Note that this returns...
struct ecu_ntnode * ecu_ntnode_sibling_iterator_begin(struct ecu_ntnode_sibling_iterator *me, struct ecu_ntnode *start)
Starts an iteration over all siblings, excluding the supplied starting node.
bool ecu_ntnode_in_tree(const struct ecu_ntnode *me)
Returns true if the node is in a tree. False otherwise. Note that this returns true for a root node t...
const struct ecu_ntnode * ecu_ntnode_prev_sibling_iterator_cnext(struct ecu_ntnode_prev_sibling_citerator *me)
Const-qualified version of ecu_ntnode_prev_sibling_iterator_next(). Returns the next node in the iter...
struct ecu_ntnode * ecu_ntnode_postorder_iterator_end(struct ecu_ntnode_postorder_iterator *me)
Returns the ending node in the iteration, which is a dummy delimiter.
const struct ecu_ntnode * ecu_ntnode_prev_sibling_iterator_cbegin(struct ecu_ntnode_prev_sibling_citerator *me, const struct ecu_ntnode *start)
Const-qualified version of ecu_ntnode_prev_sibling_iterator_begin(). Starts an iteration over all pre...
struct ecu_ntnode * ecu_ntnode_first_child(struct ecu_ntnode *me)
Returns the node's first (leftmost) child. NULL is returned if the node has no children.
const struct ecu_ntnode * ecu_ntnode_clca(const struct ecu_ntnode *n1, const struct ecu_ntnode *n2)
Const-qualified version of ecu_ntnode_lca(). Returns the least common ancestor of n1 and n2....
struct ecu_ntnode * ecu_ntnode_parent(struct ecu_ntnode *me)
Returns the supplied node's parent. NULL is returned if the node is a root.
const struct ecu_ntnode * ecu_ntnode_cparent(const struct ecu_ntnode *me)
Const-qualified version of ecu_ntnode_parent(). Returns the supplied node's parent....
bool ecu_ntnode_is_descendant(const struct ecu_ntnode *me)
Returns true if the node is in a tree and is not the root. False otherwise.
size_t ecu_ntnode_size(const struct ecu_ntnode *me)
Returns the total number of descendants (children, grandchildren, etc) the node has....
ecu_object_id_t ecu_ntnode_id(const struct ecu_ntnode *me)
Returns the node's ID assigned when it was constructed in ecu_ntnode_ctor().
struct ecu_ntnode * ecu_ntnode_parent_iterator_end(struct ecu_ntnode_parent_iterator *me)
Returns the ending node in the iteration, which is NULL.
struct ecu_ntnode * ecu_ntnode_lca(struct ecu_ntnode *n1, struct ecu_ntnode *n2)
Returns the least common ancestor of n1 and n2. Returns NULL if nodes are in separate trees and do no...
void ecu_ntnode_push_child_front(struct ecu_ntnode *parent, struct ecu_ntnode *child)
Inserts a leftmost child node into the tree. child becomes parent's first (leftmost) child.
struct ecu_ntnode * ecu_ntnode_prev_sibling_iterator_at(struct ecu_ntnode_prev_sibling_iterator *me, struct ecu_ntnode *start)
Starts an iteration over all previous (left) siblings, including the supplied starting node....
const struct ecu_ntnode * ecu_ntnode_postorder_iterator_cnext(struct ecu_ntnode_postorder_citerator *me)
Const-qualified version of ecu_ntnode_postorder_iterator_next(). Returns the next node in the iterati...
const struct ecu_ntnode * ecu_ntnode_next_sibling_iterator_cbegin(struct ecu_ntnode_next_sibling_citerator *me, const struct ecu_ntnode *start)
Const-qualified version of ecu_ntnode_next_sibling_iterator_begin(). Starts an iteration over all nex...
void ecu_ntnode_insert_sibling_before(struct ecu_ntnode *pos, struct ecu_ntnode *sibling)
Inserts a sibling node into the tree before the specified position. sibling becomes pos's previous si...
const struct ecu_ntnode * ecu_ntnode_prev_sibling_iterator_cend(struct ecu_ntnode_prev_sibling_citerator *me)
Const-qualified version of ecu_ntnode_prev_sibling_iterator_end(). Returns the ending node in the ite...
void ecu_ntnode_clear(struct ecu_ntnode *me)
Removes the supplied node and all of its descendants from a tree. All nodes can be reused and added t...
struct ecu_ntnode * ecu_ntnode_last_child(struct ecu_ntnode *me)
Returns the node's last (rightmost) child. NULL is returned if the node has no children.
const struct ecu_ntnode * ecu_ntnode_next_sibling_iterator_cat(struct ecu_ntnode_next_sibling_citerator *me, const struct ecu_ntnode *start)
Const-qualified version of ecu_ntnode_next_sibling_iterator_at(). Starts an iteration over all next (...
const struct ecu_ntnode * ecu_ntnode_parent_iterator_cnext(struct ecu_ntnode_parent_citerator *me)
Const-qualified version of ecu_ntnode_parent_iterator_next(). Returns the next parent in the iteratio...
const struct ecu_ntnode * ecu_ntnode_next_sibling_iterator_cnext(struct ecu_ntnode_next_sibling_citerator *me)
Const-qualified version of ecu_ntnode_next_sibling_iterator_next(). Returns the next node in the iter...
const struct ecu_ntnode * ecu_ntnode_preorder_iterator_cnext(struct ecu_ntnode_preorder_citerator *me)
Const-qualified version of ecu_ntnode_preorder_iterator_next(). Returns the next node in the iteratio...
struct ecu_ntnode * ecu_ntnode_prev_sibling_iterator_end(struct ecu_ntnode_prev_sibling_iterator *me)
Returns the ending node in the iteration, which is NULL.
struct ecu_ntnode * ecu_ntnode_child_iterator_begin(struct ecu_ntnode_child_iterator *me, struct ecu_ntnode *parent)
Starts an iteration over the supplied node's direct children. Grandchildren, great-grandchildren,...
const struct ecu_ntnode * ecu_ntnode_postorder_iterator_cend(struct ecu_ntnode_postorder_citerator *me)
Const-qualified version of ecu_ntnode_postorder_iterator_end(). Returns the ending node in the iterat...
void ecu_ntnode_destroy(struct ecu_ntnode *me)
Node destructor. Destroys the supplied node and all of its descendants (children, grandchildren,...
struct ecu_ntnode * ecu_ntnode_next_sibling_iterator_begin(struct ecu_ntnode_next_sibling_iterator *me, struct ecu_ntnode *start)
Starts an iteration over all next (right) siblings, excluding the supplied starting node....
struct ecu_ntnode * ecu_ntnode_sibling_iterator_end(struct ecu_ntnode_sibling_iterator *me)
Returns the ending node in the iteration.
struct ecu_ntnode * ecu_ntnode_next_sibling_iterator_next(struct ecu_ntnode_next_sibling_iterator *me)
Returns the next node in the iteration.
bool ecu_ntnode_valid(const struct ecu_ntnode *me)
Returns true if supplied node has been constructed via ecu_ntnode_ctor() and can be used....
struct ecu_ntnode * ecu_ntnode_preorder_iterator_begin(struct ecu_ntnode_preorder_iterator *me, struct ecu_ntnode *root)
Starts a preorder iteration over the supplied node's tree. The supplied root is returned,...
const struct ecu_ntnode * ecu_ntnode_last_cchild(const struct ecu_ntnode *me)
Const-qualified version of ecu_ntnode_last_child(). Returns the node's last (rightmost) child....
const struct ecu_ntnode * ecu_ntnode_preorder_iterator_cend(struct ecu_ntnode_preorder_citerator *me)
Const-qualified version of ecu_ntnode_preorder_iterator_end(). Returns the ending node in the iterati...
const struct ecu_ntnode * ecu_ntnode_child_iterator_cend(struct ecu_ntnode_child_citerator *me)
Const-qualified version of ecu_ntnode_child_iterator_end(). Returns the ending node in the iteration,...
struct ecu_ntnode * ecu_ntnode_postorder_iterator_begin(struct ecu_ntnode_postorder_iterator *me, struct ecu_ntnode *root)
Starts a postorder iteration over the supplied node's tree. Returns the first node in the iteration.
void ecu_ntnode_remove(struct ecu_ntnode *me)
Removes node from a tree. If the removed node has descendants, the node becomes a new root with its t...
size_t ecu_ntnode_level(const struct ecu_ntnode *me)
Returns which level of the tree the supplied node is in. Returns 0 if the supplied node is a root.
const struct ecu_ntnode * ecu_ntnode_prev_sibling_iterator_cat(struct ecu_ntnode_prev_sibling_citerator *me, const struct ecu_ntnode *start)
Const-qualified version of ecu_ntnode_prev_sibling_iterator_at(). Starts an iteration over all previo...
struct ecu_ntnode * ecu_ntnode_prev_sibling_iterator_begin(struct ecu_ntnode_prev_sibling_iterator *me, struct ecu_ntnode *start)
Starts an iteration over all previous (left) siblings, excluding the supplied starting node....
const struct ecu_ntnode * ecu_ntnode_cnext(const struct ecu_ntnode *me)
Const-qualified version of ecu_ntnode_next(). Returns the node's next (right) sibling....
const struct ecu_ntnode * ecu_ntnode_parent_iterator_cat(struct ecu_ntnode_parent_citerator *me, const struct ecu_ntnode *start)
Const-qualified version of ecu_ntnode_parent_iterator_at(). Starts an iteration over all parents,...
struct ecu_ntnode * ecu_ntnode_child_iterator_end(struct ecu_ntnode_child_iterator *me)
Returns the ending node in the iteration, which is NULL.
struct ecu_ntnode * ecu_ntnode_prev_sibling_iterator_next(struct ecu_ntnode_prev_sibling_iterator *me)
Returns the next node in the iteration.
struct ecu_ntnode * ecu_ntnode_postorder_iterator_next(struct ecu_ntnode_postorder_iterator *me)
Returns the next node in the iteration.
const struct ecu_ntnode * ecu_ntnode_cprev(const struct ecu_ntnode *me)
Const-qualified version of ecu_ntnode_prev(). Returns the node's previous (left) sibling....
struct ecu_ntnode * ecu_ntnode_preorder_iterator_end(struct ecu_ntnode_preorder_iterator *me)
Returns the ending node in the iteration, which is a dummy delimiter.
struct ecu_ntnode * ecu_ntnode_sibling_iterator_next(struct ecu_ntnode_sibling_iterator *me)
Returns the next sibling in the iteration.
void ecu_ntnode_insert_sibling_after(struct ecu_ntnode *pos, struct ecu_ntnode *sibling)
Inserts a sibling node into the tree after the specified position. sibling becomes pos's next sibling...
const struct ecu_ntnode * ecu_ntnode_sibling_iterator_cbegin(struct ecu_ntnode_sibling_citerator *me, const struct ecu_ntnode *start)
Const-qualified version of ecu_ntnode_sibling_iterator_begin(). Starts an iteration over all siblings...
struct ecu_ntnode * ecu_ntnode_parent_iterator_begin(struct ecu_ntnode_parent_iterator *me, struct ecu_ntnode *start)
Starts an iteration over all parents, excluding the supplied starting node. If the starting node has ...
const struct ecu_ntnode * ecu_ntnode_parent_iterator_cend(struct ecu_ntnode_parent_citerator *me)
Const-qualified version of ecu_ntnode_parent_iterator_end(). Returns the ending node in the iteration...
const struct ecu_ntnode * ecu_ntnode_sibling_iterator_cnext(struct ecu_ntnode_sibling_citerator *me)
Const-qualified version of ecu_ntnode_sibling_iterator_next(). Returns the next sibling in the iterat...
struct ecu_ntnode * ecu_ntnode_next_sibling_iterator_end(struct ecu_ntnode_next_sibling_iterator *me)
Returns the ending node in the iteration, which is NULL.
const struct ecu_ntnode * ecu_ntnode_first_cchild(const struct ecu_ntnode *me)
Const-qualified version of ecu_ntnode_first_child(). Returns the node's first (leftmost) child....
struct ecu_ntnode * ecu_ntnode_parent_iterator_at(struct ecu_ntnode_parent_iterator *me, struct ecu_ntnode *start)
Starts an iteration over all parents, including the supplied starting node. The supplied starting nod...
void ecu_ntnode_push_child_back(struct ecu_ntnode *parent, struct ecu_ntnode *child)
Inserts a rightmost child node into the tree. child becomes parent's last (rightmost) child.
struct ecu_ntnode * ecu_ntnode_next_sibling_iterator_at(struct ecu_ntnode_next_sibling_iterator *me, struct ecu_ntnode *start)
Starts an iteration over all next (right) siblings, including the supplied starting node....
const struct ecu_ntnode * ecu_ntnode_postorder_iterator_cbegin(struct ecu_ntnode_postorder_citerator *me, const struct ecu_ntnode *root)
Const-qualified version of ecu_ntnode_postorder_iterator_begin(). Starts a postorder iteration over t...
const struct ecu_ntnode * ecu_ntnode_next_sibling_iterator_cend(struct ecu_ntnode_next_sibling_citerator *me)
Const-qualified version of ecu_ntnode_next_sibling_iterator_end(). Returns the ending node in the ite...
struct ecu_ntnode * ecu_ntnode_preorder_iterator_next(struct ecu_ntnode_preorder_iterator *me)
Returns the next node in the iteration.
const struct ecu_ntnode * ecu_ntnode_preorder_iterator_cbegin(struct ecu_ntnode_preorder_citerator *me, const struct ecu_ntnode *root)
Const-qualified version of ecu_ntnode_preorder_iterator_begin(). Starts a preorder iteration over the...
struct ecu_ntnode * ecu_ntnode_prev(struct ecu_ntnode *me)
Returns the node's previous (left) sibling. NULL is returned if the node is the first (leftmost) sibl...
const struct ecu_ntnode * ecu_ntnode_child_iterator_cbegin(struct ecu_ntnode_child_citerator *me, const struct ecu_ntnode *parent)
Const-qualified version of ecu_ntnode_child_iterator_begin(). Starts an iteration over the supplied n...
size_t ecu_ntnode_count(const struct ecu_ntnode *me)
Returns the number of direct children the supplied node has. Grandchildren, great-granchildren,...
int32_t ecu_object_id_t
Object ID type. Used so the library can implicitly typecast between this value, ecu_reserved_object_i...
Definition: object_id.h:64
Single node within list. Intrusive, so user-defined types contain this node as a member.
Definition: dlist.h:166
const struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:520
const struct ecu_ntnode * next
Next node in the iteration. Kept to remain consistent with non-const iterator implementation.
Definition: ntnode.h:524
struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:504
struct ecu_ntnode * next
Next node in the iteration to allow safe removal of current node.
Definition: ntnode.h:508
const struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:592
const struct ecu_ntnode * next
Next node in the iteration. Kept to remain consistent with non-const iterator implementation.
Definition: ntnode.h:596
struct ecu_ntnode * next
Next node in the iteration to allow safe removal of current node.
Definition: ntnode.h:580
struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:576
const struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:556
const struct ecu_ntnode * next
Next node in the iteration. Kept to remain consistent with non-const iterator implementation.
Definition: ntnode.h:560
struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:540
struct ecu_ntnode * next
Next node in the iteration to allow safe removal of current node.
Definition: ntnode.h:544
struct ecu_ntnode delimiter
Dummy delimiter returned at the end of the iteration. Not apart of user's tree. Allows iteration over...
Definition: ntnode.h:637
const struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:644
const struct ecu_ntnode * root
Root of tree being iterated over. Included in iteration.
Definition: ntnode.h:641
const struct ecu_ntnode * next
Next node in the iteration. Kept to remain consistent with non-const iterator implementation.
Definition: ntnode.h:648
struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:620
struct ecu_ntnode delimiter
Dummy delimiter returned at the end of the iteration. Not apart of user's tree. Allows iteration over...
Definition: ntnode.h:613
struct ecu_ntnode * next
Next node in the iteration to allow safe removal of current node.
Definition: ntnode.h:624
struct ecu_ntnode * root
Root of tree being iterated over. Included in iteration.
Definition: ntnode.h:617
const struct ecu_ntnode * root
Root of tree being iterated over. Included in iteration.
Definition: ntnode.h:689
struct ecu_ntnode delimiter
Dummy delimiter returned at the end of the iteration. Not apart of user's tree. Allows iteration over...
Definition: ntnode.h:685
const struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:692
struct ecu_ntnode * root
Root of tree being iterated over. Included in iteration.
Definition: ntnode.h:669
struct ecu_ntnode delimiter
Dummy delimiter returned at the end of the iteration. Not apart of user's tree. Allows iteration over...
Definition: ntnode.h:665
struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:672
const struct ecu_ntnode * next
Next node in the iteration. Kept to remain consistent with non-const iterator implementation.
Definition: ntnode.h:728
const struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:724
struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:708
struct ecu_ntnode * next
Next node in the iteration to allow safe removal of current node.
Definition: ntnode.h:712
const struct ecu_ntnode * end
Starting node of iteration which is also the ending node. Not included in iteration to allow safe rem...
Definition: ntnode.h:767
const struct ecu_ntnode * next
Next node in the iteration. Kept to remain consistent with non-const iterator implementation.
Definition: ntnode.h:774
const struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:770
struct ecu_ntnode * current
Current node in the iteration.
Definition: ntnode.h:749
struct ecu_ntnode * next
Next node in the iteration to allow safe removal of current node.
Definition: ntnode.h:753
struct ecu_ntnode * end
Starting node of iteration which is also the ending node. Not included in iteration to allow safe rem...
Definition: ntnode.h:746
Single node within a tree. Intrusive, so user-defined types contain this node as a member....
Definition: ntnode.h:475
void(* destroy)(struct ecu_ntnode *me, ecu_object_id_t id)
Optional user-defined node destructor. Executes when ecu_ntnode_destroy() is called or if this node w...
Definition: ntnode.h:488
struct ecu_dlist children
Node's children, represented as a linked list.
Definition: ntnode.h:480
struct ecu_dnode dnode
This node, represented as a linked list node.
Definition: ntnode.h:477
Generated by