WvStreams
|
A recursively composed dictionary for tree-structured data indexed by UniConfKey. More...
#include <uniconftree.h>
Classes | |
class | Iter |
An iterator that walks over all elements on one level of a UniConfTree. More... | |
Public Types | |
typedef wv::function< void(const Sub *, void *)> | Visitor |
typedef wv::function< bool(const Sub *, const Sub *)> | Comparator |
typedef wv::function< void(const Sub *, void *)> | Visitor |
typedef wv::function< bool(const Sub *, const Sub *)> | Comparator |
Public Member Functions | |
UniConfTree (Sub *parent, const UniConfKey &key) | |
Creates a node and links it to a subtree, if parent is non-NULL. | |
~UniConfTree () | |
Destroy this node's contents and children. | |
Sub * | parent () const |
Returns a pointer to the parent node, or NULL if there is none. | |
void | setparent (Sub *parent) |
Reparents this node. | |
Sub * | root () const |
Returns a pointer to the root node of the tree. | |
UniConfKey | fullkey (const Sub *ancestor=NULL) const |
Returns full path of this node relative to an ancestor. | |
Sub * | find (const UniConfKey &key) const |
Finds the sub-node with the specified key. | |
Sub * | findchild (const UniConfKey &key) const |
Finds the direct child node with the specified key. | |
void | remove (const UniConfKey &key) |
Removes the node for the specified key from the tree and deletes it along with any of its children. | |
void | zap () |
Removes and deletes all children of this node. | |
void | visit (const Visitor &visitor, void *userdata, bool preorder=true, bool postorder=false) const |
Performs a traversal on this tree using the specified visitor function and traversal type(s). | |
bool | compare (const Sub *other, const Comparator &comparator) |
Compares this tree with another using the specified comparator function. | |
UniConfTree (Sub *parent, const UniConfKey &key) | |
Creates a node and links it to a subtree, if parent is non-NULL. | |
~UniConfTree () | |
Destroy this node's contents and children. | |
Sub * | parent () const |
Returns a pointer to the parent node, or NULL if there is none. | |
void | setparent (Sub *parent) |
Reparents this node. | |
Sub * | root () const |
Returns a pointer to the root node of the tree. | |
UniConfKey | fullkey (const Sub *ancestor=NULL) const |
Returns full path of this node relative to an ancestor. | |
Sub * | find (const UniConfKey &key) const |
Finds the sub-node with the specified key. | |
Sub * | findchild (const UniConfKey &key) const |
Finds the direct child node with the specified key. | |
void | remove (const UniConfKey &key) |
Removes the node for the specified key from the tree and deletes it along with any of its children. | |
void | zap () |
Removes and deletes all children of this node. | |
void | visit (const Visitor &visitor, void *userdata, bool preorder=true, bool postorder=false) const |
Performs a traversal on this tree using the specified visitor function and traversal type(s). | |
bool | compare (const Sub *other, const Comparator &comparator) |
Compares this tree with another using the specified comparator function. | |
const UniConfKey & | key () const |
Returns the key field. | |
const UniConfKey & | key () const |
Returns the key field. | |
bool | haschildren () const |
Returns true if the node has children. | |
bool | haschildren () const |
Returns true if the node has children. | |
Protected Types | |
typedef WvScatterHash< UniHashTreeBase, UniConfKey, Accessor > | Container |
typedef WvScatterHash< UniHashTreeBase, UniConfKey, Accessor > | Container |
typedef UniHashTreeBaseVisitor | BaseVisitor |
typedef UniHashTreeBaseVisitor | BaseVisitor |
typedef UniHashTreeBaseComparator | BaseComparator |
typedef UniHashTreeBaseComparator | BaseComparator |
Protected Member Functions | |
UniConfKey | _fullkey (const UniHashTreeBase *ancestor=NULL) const |
UniConfKey | _fullkey (const UniHashTreeBase *ancestor=NULL) const |
UniHashTreeBase * | _find (const UniConfKey &key) const |
UniHashTreeBase * | _find (const UniConfKey &key) const |
UniHashTreeBase * | _findchild (const UniConfKey &key) const |
UniHashTreeBase * | _findchild (const UniConfKey &key) const |
Static Protected Member Functions | |
static bool | _recursivecompare (const UniHashTreeBase *a, const UniHashTreeBase *b, const UniHashTreeBaseComparator &comparator) |
static bool | _recursivecompare (const UniHashTreeBase *a, const UniHashTreeBase *b, const UniHashTreeBaseComparator &comparator) |
static void | _recursive_unsorted_visit (const UniHashTreeBase *a, const UniHashTreeBaseVisitor &visitor, void *userdata, bool preorder, bool postorder) |
static void | _recursive_unsorted_visit (const UniHashTreeBase *a, const UniHashTreeBaseVisitor &visitor, void *userdata, bool preorder, bool postorder) |
Protected Attributes | |
UniHashTreeBase * | xparent |
Container * | xchildren |
A recursively composed dictionary for tree-structured data indexed by UniConfKey.
Someday this could be further abstracted into a generic WvTreeDict.
"Sub" is the name of the concrete subclass of UniConfTree.
Definition at line 23 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
typedef wv::function<void(const Sub*, void*)> UniConfTree< Sub >::Visitor |
Definition at line 27 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
typedef wv::function<bool(const Sub*, const Sub*)> UniConfTree< Sub >::Comparator |
Definition at line 28 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
typedef wv::function<void(const Sub*, void*)> UniConfTree< Sub >::Visitor |
Definition at line 27 of file include/uniconftree.h.
typedef wv::function<bool(const Sub*, const Sub*)> UniConfTree< Sub >::Comparator |
Definition at line 28 of file include/uniconftree.h.
|
protectedinherited |
Definition at line 32 of file debian/libwvstreams-dev/usr/include/wvstreams/unihashtree.h.
|
protectedinherited |
Definition at line 32 of file include/unihashtree.h.
|
protectedinherited |
Definition at line 33 of file debian/libwvstreams-dev/usr/include/wvstreams/unihashtree.h.
|
protectedinherited |
Definition at line 33 of file include/unihashtree.h.
|
protectedinherited |
Definition at line 34 of file debian/libwvstreams-dev/usr/include/wvstreams/unihashtree.h.
|
protectedinherited |
Definition at line 34 of file include/unihashtree.h.
|
inline |
Creates a node and links it to a subtree, if parent is non-NULL.
Definition at line 31 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
|
inline |
Destroy this node's contents and children.
Definition at line 36 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
References UniConfTree< Sub >::zap().
|
inline |
Creates a node and links it to a subtree, if parent is non-NULL.
Definition at line 31 of file include/uniconftree.h.
|
inline |
Destroy this node's contents and children.
Definition at line 36 of file include/uniconftree.h.
References UniConfTree< Sub >::zap().
|
inline |
Returns a pointer to the parent node, or NULL if there is none.
Definition at line 40 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
References UniHashTreeBase::xparent.
Referenced by UniConfTree< Sub >::setparent().
|
inline |
Reparents this node.
Definition at line 44 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
References UniConfTree< Sub >::parent().
|
inline |
Returns a pointer to the root node of the tree.
Definition at line 48 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
|
inline |
Returns full path of this node relative to an ancestor.
If ancestor is NULL, returns the root.
Definition at line 55 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
Referenced by UniTransactionGen::deletion_visitor(), and UniTempGen::set().
|
inline |
Finds the sub-node with the specified key.
If key.isempty(), returns this node.
Definition at line 62 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
References UniHashTreeBase::key().
Referenced by UniConfRoot::del_callback(), UniFastRegetGen::gencallback(), UniFastRegetGen::get(), UniTempGen::get(), UniTransactionGen::get(), UniFastRegetGen::haschildren(), UniTempGen::haschildren(), UniTempGen::iterator(), UniTransactionGen::iterator(), UniConfTree< Sub >::remove(), and UniTempGen::set().
|
inline |
Finds the direct child node with the specified key.
If key.numsegments() == 1, then performs the same task as find(key), but a little faster. Otherwise returns NULL.
Definition at line 71 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
References UniHashTreeBase::key().
Referenced by UniConfRoot::add_callback(), UniTransactionGen::apply_values(), UniTransactionGen::cancel_values(), UniTransactionGen::gencallback(), UniTransactionGen::get(), UniTransactionGen::iterator(), GenStyleChangeTreeIter::next(), and UniTempGen::set().
|
inline |
Removes the node for the specified key from the tree and deletes it along with any of its children.
If the key is UniConfKey::EMPTY, deletes this object.
Definition at line 80 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
References UniConfTree< Sub >::find(), and UniHashTreeBase::key().
|
inline |
Removes and deletes all children of this node.
Definition at line 84 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
References UniHashTreeBase::xchildren.
Referenced by UniConfTree< Sub >::~UniConfTree().
|
inline |
Performs a traversal on this tree using the specified visitor function and traversal type(s).
"visitor" is the tree visitor function "userdata" is userdata for the tree visitor function
Definition at line 108 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
Referenced by UniTransactionGen::cancel_changes(), and UniTempGen::set().
|
inline |
Compares this tree with another using the specified comparator function.
Comparison of a subtree ends when the comparator returns false. "comparator" is the value compare function "userdata" is userdata for the compare function Returns: true if the comparison function returned true each time
Definition at line 124 of file debian/libwvstreams-dev/usr/include/wvstreams/uniconftree.h.
Referenced by UniIniGen::refresh().
|
inline |
Returns a pointer to the parent node, or NULL if there is none.
Definition at line 40 of file include/uniconftree.h.
References UniHashTreeBase::xparent.
|
inline |
Reparents this node.
Definition at line 44 of file include/uniconftree.h.
References UniConfTree< Sub >::parent().
|
inline |
Returns a pointer to the root node of the tree.
Definition at line 48 of file include/uniconftree.h.
|
inline |
Returns full path of this node relative to an ancestor.
If ancestor is NULL, returns the root.
Definition at line 55 of file include/uniconftree.h.
|
inline |
Finds the sub-node with the specified key.
If key.isempty(), returns this node.
Definition at line 62 of file include/uniconftree.h.
References UniHashTreeBase::key().
|
inline |
Finds the direct child node with the specified key.
If key.numsegments() == 1, then performs the same task as find(key), but a little faster. Otherwise returns NULL.
Definition at line 71 of file include/uniconftree.h.
References UniHashTreeBase::key().
|
inline |
Removes the node for the specified key from the tree and deletes it along with any of its children.
If the key is UniConfKey::EMPTY, deletes this object.
Definition at line 80 of file include/uniconftree.h.
References UniConfTree< Sub >::find(), and UniHashTreeBase::key().
|
inline |
Removes and deletes all children of this node.
Definition at line 84 of file include/uniconftree.h.
References UniHashTreeBase::xchildren.
|
inline |
Performs a traversal on this tree using the specified visitor function and traversal type(s).
"visitor" is the tree visitor function "userdata" is userdata for the tree visitor function
Definition at line 108 of file include/uniconftree.h.
|
inline |
Compares this tree with another using the specified comparator function.
Comparison of a subtree ends when the comparator returns false. "comparator" is the value compare function "userdata" is userdata for the compare function Returns: true if the comparison function returned true each time
Definition at line 124 of file include/uniconftree.h.
|
inlineinherited |
Returns the key field.
Definition at line 40 of file debian/libwvstreams-dev/usr/include/wvstreams/unihashtree.h.
Referenced by UniConfTree< Sub >::find(), UniConfTree< Sub >::findchild(), UniConfTree< Sub >::remove(), and UniTransactionGen::setv().
|
inlineinherited |
Returns the key field.
Definition at line 40 of file include/unihashtree.h.
|
inherited |
Returns true if the node has children.
Definition at line 114 of file unihashtree.cc.
References UniHashTreeBase::xchildren.
Referenced by UniTempGen::haschildren(), and UniWatchInfoTree::isessential().
|
protectedinherited |
Definition at line 63 of file unihashtree.cc.
|
protectedinherited |
Definition at line 90 of file unihashtree.cc.
|
protectedinherited |
Definition at line 105 of file unihashtree.cc.
|
staticprotectedinherited |
Definition at line 163 of file unihashtree.cc.
|
staticprotectedinherited |
Definition at line 148 of file unihashtree.cc.
|
protectedinherited |
the parent of this subtree
Definition at line 62 of file debian/libwvstreams-dev/usr/include/wvstreams/unihashtree.h.
Referenced by UniConfTree< Sub >::parent().
|
protectedinherited |
the hash table of children
Definition at line 63 of file debian/libwvstreams-dev/usr/include/wvstreams/unihashtree.h.
Referenced by UniHashTreeBase::haschildren(), and UniConfTree< Sub >::zap().