Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

UniConfTree< Sub, Base > Class Template Reference

#include <uniconftree.h>

Inheritance diagram for UniConfTree< Sub, Base >:

[legend]
List of all members.

Detailed Description

template<class Sub, class Base = UniHashTreeBase>
class UniConfTree< Sub, Base >

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.


Public Types

typedef WvCallback< void,
const Sub *, void * > 
Visitor
typedef WvCallback< bool,
const Sub *, const Sub *,
void * > 
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, void *userdata)
 Compares this tree with another using the specified comparator function.

Classes

class  Iter
 An iterator that walks over all elements on one level of a UniConfTree. More...


Member Function Documentation

template<class Sub, class Base = UniHashTreeBase>
UniConfKey UniConfTree< Sub, Base >::fullkey const Sub *  ancestor = NULL  )  const [inline]
 

Returns full path of this node relative to an ancestor.

If ancestor is NULL, returns the root.

template<class Sub, class Base = UniHashTreeBase>
Sub* UniConfTree< Sub, Base >::find const UniConfKey key  )  const [inline]
 

Finds the sub-node with the specified key.

If key.isempty(), returns this node.

template<class Sub, class Base = UniHashTreeBase>
Sub* UniConfTree< Sub, Base >::findchild const UniConfKey key  )  const [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.

template<class Sub, class Base = UniHashTreeBase>
void UniConfTree< Sub, Base >::remove const UniConfKey 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.

template<class Sub, class Base = UniHashTreeBase>
void UniConfTree< Sub, Base >::visit const Visitor &  visitor,
void *  userdata,
bool  preorder = true,
bool  postorder = false
const [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

template<class Sub, class Base = UniHashTreeBase>
bool UniConfTree< Sub, Base >::compare const Sub *  other,
const Comparator &  comparator,
void *  userdata
[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


The documentation for this class was generated from the following file:
Generated on Sun Apr 3 14:48:18 2005 for WvStreams by  doxygen 1.4.2