7 #ifndef __UNICONFTREE_H
8 #define __UNICONFTREE_H
10 #include "uniconfkey.h"
11 #include "unihashtree.h"
27 typedef wv::function<void(const Sub*, void*)> Visitor;
28 typedef wv::function<bool(const Sub*, const Sub*)> Comparator;
41 {
return static_cast<Sub*
>(this->
xparent); }
45 { UniHashTreeBase::_setparent(parent); }
49 {
return static_cast<Sub*
>(UniHashTreeBase::_root()); }
56 {
return UniHashTreeBase::_fullkey(ancestor); }
63 {
return static_cast<Sub*
>(UniHashTreeBase::_find(key)); }
72 {
return static_cast<Sub*
>(UniHashTreeBase::_findchild(key)); }
96 for (i.rewind(); i.next();)
97 delete static_cast<Sub*>(i.ptr());
108 void visit(
const Visitor &visitor,
void *userdata,
109 bool preorder =
true,
bool postorder =
false)
const
111 _recursive_unsorted_visit(
this,
reinterpret_cast<
112 const typename UniHashTreeBase::BaseVisitor&
>(visitor), userdata,
113 preorder, postorder);
124 bool compare(
const Sub *other,
const Comparator &comparator)
126 return _recursivecompare(
this, other,
reinterpret_cast<
127 const typename UniHashTreeBase::BaseComparator&
>(comparator));
145 {
return static_cast<Sub*
>(MyBase::ptr()); }
172 #endif // __UNICONFTREE_H