10#include "uniconfkey.h"
12#include "wvscatterhash.h"
18 void*)> UniHashTreeBaseVisitor;
28 static const UniConfKey *get_key(
const UniHashTreeBase *obj)
29 {
return &obj->
key(); }
32 typedef WvScatterHash<UniHashTreeBase, UniConfKey, Accessor> Container;
33 typedef UniHashTreeBaseVisitor BaseVisitor;
34 typedef UniHashTreeBaseComparator BaseComparator;
47 UniHashTreeBase(UniHashTreeBase *parent,
const UniConfKey &
key);
49 UniConfKey _fullkey(
const UniHashTreeBase *ancestor = NULL)
const;
53 static bool _recursivecompare(
54 const UniHashTreeBase *a,
const UniHashTreeBase *b,
55 const UniHashTreeBaseComparator &comparator);
57 static void _recursive_unsorted_visit(
58 const UniHashTreeBase *a,
59 const UniHashTreeBaseVisitor &visitor,
void *userdata,
60 bool preorder,
bool postorder);
66 void _setparent(UniHashTreeBase *parent);
67 UniHashTreeBase *_root()
const;
70 void link(UniHashTreeBase *node);
73 void unlink(UniHashTreeBase *node);
78 class Iter :
public Container::Iter
Represents a UniConf key which is a path in a hierarchy structured much like the traditional Unix fil...
const UniConfKey & key() const
Returns the key field.
bool haschildren() const
Returns true if the node has children.
UniHashTreeBase * xparent