WvStreams
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
UniConfValueTree Class Reference

A plain UniConfTree that holds keys and values. More...

#include <uniconftree.h>

Inheritance diagram for UniConfValueTree:
Inheritance graph
[legend]

Public Types

typedef wv::function< void(const UniConfValueTree *, void *)> Visitor
 
typedef wv::function< bool(const UniConfValueTree *, const UniConfValueTree *)> Comparator
 

Public Member Functions

 UniConfValueTree (UniConfValueTree *parent, const UniConfKey &key, WvStringParm value)
 
const WvStringvalue () const
 Returns the value field.
 
void setvalue (WvStringParm value)
 Sets the value field.
 
UniConfValueTreeparent () const
 Returns a pointer to the parent node, or NULL if there is none.
 
void setparent (UniConfValueTree *parent)
 Reparents this node.
 
UniConfValueTreeroot () const
 Returns a pointer to the root node of the tree.
 
UniConfKey fullkey (const UniConfValueTree *ancestor=NULL) const
 Returns full path of this node relative to an ancestor. More...
 
UniConfValueTreefind (const UniConfKey &key) const
 Finds the sub-node with the specified key. More...
 
UniConfValueTreefindchild (const UniConfKey &key) const
 Finds the direct child node with the specified key. More...
 
void remove (const UniConfKey &key)
 Removes the node for the specified key from the tree and deletes it along with any of its children. More...
 
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). More...
 
bool compare (const UniConfValueTree *other, const Comparator &comparator)
 Compares this tree with another using the specified comparator function. More...
 
const UniConfKeykey () const
 Returns the key field.
 
bool haschildren () const
 Returns true if the node has children.
 

Protected Types

typedef WvScatterHash< UniHashTreeBase, UniConfKey, AccessorContainer
 
typedef UniHashTreeBaseVisitor BaseVisitor
 
typedef UniHashTreeBaseComparator BaseComparator
 

Protected Member Functions

UniConfKey _fullkey (const UniHashTreeBase *ancestor=NULL) const
 
UniHashTreeBase_find (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 void _recursive_unsorted_visit (const UniHashTreeBase *a, const UniHashTreeBaseVisitor &visitor, void *userdata, bool preorder, bool postorder)
 

Protected Attributes

UniHashTreeBasexparent
 
Containerxchildren
 

Detailed Description

A plain UniConfTree that holds keys and values.

Definition at line 152 of file uniconftree.h.

Member Function Documentation

◆ fullkey()

UniConfKey UniConfTree< UniConfValueTree >::fullkey ( const UniConfValueTree ancestor = NULL) const
inlineinherited

Returns full path of this node relative to an ancestor.

If ancestor is NULL, returns the root.

Definition at line 55 of file uniconftree.h.

◆ find()

UniConfValueTree * UniConfTree< UniConfValueTree >::find ( const UniConfKey key) const
inlineinherited

Finds the sub-node with the specified key.

If key.isempty(), returns this node.

Definition at line 62 of file uniconftree.h.

◆ findchild()

UniConfValueTree * UniConfTree< UniConfValueTree >::findchild ( const UniConfKey key) const
inlineinherited

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 uniconftree.h.

◆ remove()

void UniConfTree< UniConfValueTree >::remove ( const UniConfKey key)
inlineinherited

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 uniconftree.h.

◆ visit()

void UniConfTree< UniConfValueTree >::visit ( const Visitor &  visitor,
void *  userdata,
bool  preorder = true,
bool  postorder = false 
) const
inlineinherited

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 uniconftree.h.

◆ compare()

bool UniConfTree< UniConfValueTree >::compare ( const UniConfValueTree other,
const Comparator &  comparator 
)
inlineinherited

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 uniconftree.h.

Member Data Documentation

◆ xparent

UniHashTreeBase* UniHashTreeBase::xparent
protectedinherited

the parent of this subtree

Definition at line 62 of file unihashtree.h.

Referenced by UniConfTree< UniConfChangeTree >::parent().

◆ xchildren

Container* UniHashTreeBase::xchildren
protectedinherited

the hash table of children

Definition at line 63 of file unihashtree.h.

Referenced by UniHashTreeBase::haschildren(), and UniConfTree< UniConfChangeTree >::zap().


The documentation for this class was generated from the following file: