Honeycomb  0.1
Component-Model Framework
Classes | Public Types | Public Member Functions | Friends | List of all members
honey::TreeNode< Data_, Key_, Alloc > Class Template Reference

Unrooted acyclic tree. More...

#include <Tree.h>

Classes

class  PreOrdIter_
 Depth-first pre-order traversal. More...
 

Public Types

typedef Data_ Data
 
typedef Key_ Key
 
typedef list< deref_wrap< TreeNode >, Alloc< deref_wrap< TreeNode > > > ChildList
 Child linked list. More...
 
typedef ChildList::iterator ChildIter
 
typedef ChildList::const_iterator ChildConstIter
 
typedef ChildList::reverse_iterator ChildIterR
 
typedef ChildList::const_reverse_iterator ChildConstIterR
 
typedef stdutil::unordered_multimap< Key, deref_wrap< TreeNode >, Alloc > ChildMap
 Map holding children at keys. More...
 
typedef ChildMap::iterator ChildMapIter
 
typedef ChildMap::const_iterator ChildMapConstIter
 
typedef PreOrdIter_< TreeNodePreOrdIter
 
typedef PreOrdIter_< const TreeNodePreOrdConstIter
 
typedef std::reverse_iterator< PreOrdConstIterPreOrdConstIterR
 
typedef std::reverse_iterator< PreOrdIterPreOrdIterR
 

Public Member Functions

 SIGNAL (sigDestroy,(TreeNode &src))
 Called before class is destroyed. More...
 
 SIGNAL (sigSetData,(TreeNode &src, Data data))
 Called after data is set. More...
 
 SIGNAL (sigSetKey,(TreeNode &src, Key key))
 Called after key is set. More...
 
 SIGNAL (sigInsertChild,(TreeNode &src, TreeNode *childPos, TreeNode &child))
 Called after child is inserted. More...
 
 SIGNAL (sigRemoveChild,(TreeNode &src, TreeNode &child))
 Called before child is removed. More...
 
 SIGNAL (sigSetParent,(TreeNode &src, TreeNode *parent))
 Called before new parent is set (called from parent when inserting/removing child) More...
 
 TreeNode ()
 
 TreeNode (const Data &data)
 
 TreeNode (const Data &data, const Key &key)
 
virtual ~TreeNode ()
 
void setData (const Data &data)
 Set the data that this node contains. More...
 
const DatagetData () const
 
DatagetData ()
 
 operator const Data & () const
 Implicit cast to the data at this node. More...
 
 operator Data & ()
 
const Dataoperator* () const
 Get the data at this node. More...
 
Dataoperator* ()
 
const Dataoperator-> () const
 
Dataoperator-> ()
 
void setKey (const Key &key)
 Set the key used to identify this node. More...
 
KeygetKey ()
 Get key used to identify this node. More...
 
const KeygetKey () const
 
ChildIter setParent (TreeNode *parent)
 Set parent node. Returns position in new parent's child list, or children().end() if parent is null. More...
 
const TreeNodegetParent () const
 Get parent node. More...
 
TreeNodegetParent ()
 
bool hasParent () const
 Check if node has a parent. More...
 
ChildIter addChild (TreeNode &child)
 Add child into list, returns position of child in list. More...
 
ChildIter setChild (ChildIter pos, TreeNode &child)
 Set child into list at position. Returns position of child in list. More...
 
ChildIter insertChild (ChildIter pos, TreeNode &child)
 Insert child into list at position. Returns position of child in list. More...
 
ChildIter removeChild (TreeNode &child)
 Remove child from children list. Returns position of next child, or children().end() if child doesn't exist. More...
 
ChildIter removeChild (ChildIter pos)
 Remove child at position in list. Returns position of next child. Will fail if pos is invalid. More...
 
void clearChildren ()
 Clear all children. More...
 
Range_< ChildConstIter, ChildConstIterchildren () const
 Get all children. More...
 
Range_< ChildIter, ChildIterchildren ()
 
Range_< ChildConstIterR, ChildConstIterRchildrenR () const
 Get all children in reverse order. More...
 
Range_< ChildIterR, ChildIterRchildrenR ()
 
szt childCount () const
 Get number of children. More...
 
bool hasChildren () const
 Check if node has children. More...
 
ChildConstIter childPos (const Key &key) const
 Get child position in list. Returns first child found at key, or children().end() if not found. More...
 
ChildIter childPos (const Key &key)
 
ChildConstIter childPos (const TreeNode &child) const
 Get child position in list. Returns children().end() if not in parent. More...
 
ChildIter childPos (const TreeNode &child)
 
const TreeNodechild (const Key &key) const
 Get child in list. Returns first child found at key, or null if not found. More...
 
TreeNodechild (const Key &key)
 
bool hasChild (const TreeNode &child) const
 Check if this node has a child in its list. More...
 
Range_< ChildMapIter, ChildMapIterchildren (const Key &key)
 Get children that match the key. The child node TreeNode& is stored in the map pair ChildMapIter->second. More...
 
Range_< ChildMapConstIter, ChildMapConstIterchildren (const Key &key) const
 
Range_< ChildConstIter, ChildConstItersibNext () const
 Returns forward iterator range starting at next sibling. More...
 
Range_< ChildIter, ChildItersibNext ()
 
Range_< ChildConstIterR, ChildConstIterRsibPrev () const
 Returns reverse iterator range starting at previous sibling. More...
 
Range_< ChildIterR, ChildIterRsibPrev ()
 
szt sibCount () const
 Get number of siblings (count doesn't include this node) More...
 
bool sibHasNext () const
 Check if node has a next sibling. More...
 
bool sibHasPrev () const
 Check if node has a previous sibling. More...
 
const TreeNoderoot () const
 Get the root (top-most) node of the tree that contains this node. More...
 
TreeNoderoot ()
 
bool isRoot () const
 Check if this is a root node at the top of a tree. More...
 
bool isLeaf () const
 Check if this is a leaf node at the end of a tree branch. More...
 
bool isAncestor (const TreeNode &ancestor) const
 Test if ancestor is this node's ancestor. Returns false if ancestor is same as this node. More...
 
bool isAncestorOf (const TreeNode &node) const
 Test if this node is an ancestor of node. Returns false if node is same as this node. More...
 
const TreeNodefindNode (const Key &key) const
 Returns first node found with key in tree of descendants (depth-first pre-order traversal) More...
 
TreeNodefindNode (const Key &key)
 
Range_< PreOrdConstIter, PreOrdConstIterpreOrd () const
 Get a depth-first pre-order range. More...
 
Range_< PreOrdIter, PreOrdIterpreOrd ()
 
Range_< PreOrdConstIterR, PreOrdConstIterRpreOrdR () const
 Get a reversed depth-first pre-order range. More...
 
Range_< PreOrdIterR, PreOrdIterRpreOrdR ()
 
ListenerListlisteners ()
 Get listener list. More...
 

Friends

template<class , class , template< class > class>
class TreeNode
 

Detailed Description

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
class honey::TreeNode< Data_, Key_, Alloc >

Unrooted acyclic tree.

Every tree node has one parent node, multiple children, and a generic data value. Nodes may contain a key for identification and fast retrieval. The key doesn't have to be unique.

Member Typedef Documentation

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef ChildList::const_iterator honey::TreeNode< Data_, Key_, Alloc >::ChildConstIter
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef ChildList::const_reverse_iterator honey::TreeNode< Data_, Key_, Alloc >::ChildConstIterR
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef ChildList::iterator honey::TreeNode< Data_, Key_, Alloc >::ChildIter
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef ChildList::reverse_iterator honey::TreeNode< Data_, Key_, Alloc >::ChildIterR
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef list<deref_wrap<TreeNode>, Alloc<deref_wrap<TreeNode> > > honey::TreeNode< Data_, Key_, Alloc >::ChildList

Child linked list.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef stdutil::unordered_multimap<Key, deref_wrap<TreeNode>, Alloc> honey::TreeNode< Data_, Key_, Alloc >::ChildMap

Map holding children at keys.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef ChildMap::const_iterator honey::TreeNode< Data_, Key_, Alloc >::ChildMapConstIter
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef ChildMap::iterator honey::TreeNode< Data_, Key_, Alloc >::ChildMapIter
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef Data_ honey::TreeNode< Data_, Key_, Alloc >::Data
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef Key_ honey::TreeNode< Data_, Key_, Alloc >::Key
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef PreOrdIter_<const TreeNode> honey::TreeNode< Data_, Key_, Alloc >::PreOrdConstIter
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef std::reverse_iterator<PreOrdConstIter> honey::TreeNode< Data_, Key_, Alloc >::PreOrdConstIterR
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef PreOrdIter_<TreeNode> honey::TreeNode< Data_, Key_, Alloc >::PreOrdIter
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
typedef std::reverse_iterator<PreOrdIter> honey::TreeNode< Data_, Key_, Alloc >::PreOrdIterR

Constructor & Destructor Documentation

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::TreeNode ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::TreeNode ( const Data data)
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::TreeNode ( const Data data,
const Key key 
)
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
virtual honey::TreeNode< Data_, Key_, Alloc >::~TreeNode ( )
inlinevirtual

Member Function Documentation

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ChildIter honey::TreeNode< Data_, Key_, Alloc >::addChild ( TreeNode< Data_, Key_, Alloc > &  child)
inline

Add child into list, returns position of child in list.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
const TreeNode* honey::TreeNode< Data_, Key_, Alloc >::child ( const Key key) const
inline

Get child in list. Returns first child found at key, or null if not found.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
TreeNode* honey::TreeNode< Data_, Key_, Alloc >::child ( const Key key)
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
szt honey::TreeNode< Data_, Key_, Alloc >::childCount ( ) const
inline

Get number of children.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ChildConstIter honey::TreeNode< Data_, Key_, Alloc >::childPos ( const Key key) const
inline

Get child position in list. Returns first child found at key, or children().end() if not found.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ChildIter honey::TreeNode< Data_, Key_, Alloc >::childPos ( const Key key)
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ChildConstIter honey::TreeNode< Data_, Key_, Alloc >::childPos ( const TreeNode< Data_, Key_, Alloc > &  child) const
inline

Get child position in list. Returns children().end() if not in parent.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ChildIter honey::TreeNode< Data_, Key_, Alloc >::childPos ( const TreeNode< Data_, Key_, Alloc > &  child)
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<ChildConstIter, ChildConstIter> honey::TreeNode< Data_, Key_, Alloc >::children ( ) const
inline

Get all children.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<ChildIter, ChildIter> honey::TreeNode< Data_, Key_, Alloc >::children ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<ChildMapIter, ChildMapIter> honey::TreeNode< Data_, Key_, Alloc >::children ( const Key key)
inline

Get children that match the key. The child node TreeNode& is stored in the map pair ChildMapIter->second.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<ChildMapConstIter, ChildMapConstIter> honey::TreeNode< Data_, Key_, Alloc >::children ( const Key key) const
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<ChildConstIterR, ChildConstIterR> honey::TreeNode< Data_, Key_, Alloc >::childrenR ( ) const
inline

Get all children in reverse order.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<ChildIterR, ChildIterR> honey::TreeNode< Data_, Key_, Alloc >::childrenR ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
void honey::TreeNode< Data_, Key_, Alloc >::clearChildren ( )
inline

Clear all children.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
const TreeNode* honey::TreeNode< Data_, Key_, Alloc >::findNode ( const Key key) const
inline

Returns first node found with key in tree of descendants (depth-first pre-order traversal)

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
TreeNode* honey::TreeNode< Data_, Key_, Alloc >::findNode ( const Key key)
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
const Data& honey::TreeNode< Data_, Key_, Alloc >::getData ( ) const
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Data& honey::TreeNode< Data_, Key_, Alloc >::getData ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Key& honey::TreeNode< Data_, Key_, Alloc >::getKey ( )
inline

Get key used to identify this node.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
const Key& honey::TreeNode< Data_, Key_, Alloc >::getKey ( ) const
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
const TreeNode* honey::TreeNode< Data_, Key_, Alloc >::getParent ( ) const
inline

Get parent node.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
TreeNode* honey::TreeNode< Data_, Key_, Alloc >::getParent ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
bool honey::TreeNode< Data_, Key_, Alloc >::hasChild ( const TreeNode< Data_, Key_, Alloc > &  child) const
inline

Check if this node has a child in its list.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
bool honey::TreeNode< Data_, Key_, Alloc >::hasChildren ( ) const
inline

Check if node has children.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
bool honey::TreeNode< Data_, Key_, Alloc >::hasParent ( ) const
inline

Check if node has a parent.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ChildIter honey::TreeNode< Data_, Key_, Alloc >::insertChild ( ChildIter  pos,
TreeNode< Data_, Key_, Alloc > &  child 
)
inline

Insert child into list at position. Returns position of child in list.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
bool honey::TreeNode< Data_, Key_, Alloc >::isAncestor ( const TreeNode< Data_, Key_, Alloc > &  ancestor) const
inline

Test if ancestor is this node's ancestor. Returns false if ancestor is same as this node.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
bool honey::TreeNode< Data_, Key_, Alloc >::isAncestorOf ( const TreeNode< Data_, Key_, Alloc > &  node) const
inline

Test if this node is an ancestor of node. Returns false if node is same as this node.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
bool honey::TreeNode< Data_, Key_, Alloc >::isLeaf ( ) const
inline

Check if this is a leaf node at the end of a tree branch.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
bool honey::TreeNode< Data_, Key_, Alloc >::isRoot ( ) const
inline

Check if this is a root node at the top of a tree.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ListenerList& honey::TreeNode< Data_, Key_, Alloc >::listeners ( )
inline

Get listener list.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::operator const Data & ( ) const
inline

Implicit cast to the data at this node.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::operator Data & ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
const Data& honey::TreeNode< Data_, Key_, Alloc >::operator* ( ) const
inline

Get the data at this node.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Data& honey::TreeNode< Data_, Key_, Alloc >::operator* ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
const Data& honey::TreeNode< Data_, Key_, Alloc >::operator-> ( ) const
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Data& honey::TreeNode< Data_, Key_, Alloc >::operator-> ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<PreOrdConstIter, PreOrdConstIter> honey::TreeNode< Data_, Key_, Alloc >::preOrd ( ) const
inline

Get a depth-first pre-order range.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<PreOrdIter, PreOrdIter> honey::TreeNode< Data_, Key_, Alloc >::preOrd ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<PreOrdConstIterR, PreOrdConstIterR> honey::TreeNode< Data_, Key_, Alloc >::preOrdR ( ) const
inline

Get a reversed depth-first pre-order range.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<PreOrdIterR, PreOrdIterR> honey::TreeNode< Data_, Key_, Alloc >::preOrdR ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ChildIter honey::TreeNode< Data_, Key_, Alloc >::removeChild ( TreeNode< Data_, Key_, Alloc > &  child)
inline

Remove child from children list. Returns position of next child, or children().end() if child doesn't exist.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ChildIter honey::TreeNode< Data_, Key_, Alloc >::removeChild ( ChildIter  pos)
inline

Remove child at position in list. Returns position of next child. Will fail if pos is invalid.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
const TreeNode& honey::TreeNode< Data_, Key_, Alloc >::root ( ) const
inline

Get the root (top-most) node of the tree that contains this node.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
TreeNode& honey::TreeNode< Data_, Key_, Alloc >::root ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ChildIter honey::TreeNode< Data_, Key_, Alloc >::setChild ( ChildIter  pos,
TreeNode< Data_, Key_, Alloc > &  child 
)
inline

Set child into list at position. Returns position of child in list.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
void honey::TreeNode< Data_, Key_, Alloc >::setData ( const Data data)
inline

Set the data that this node contains.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
void honey::TreeNode< Data_, Key_, Alloc >::setKey ( const Key key)
inline

Set the key used to identify this node.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
ChildIter honey::TreeNode< Data_, Key_, Alloc >::setParent ( TreeNode< Data_, Key_, Alloc > *  parent)
inline

Set parent node. Returns position in new parent's child list, or children().end() if parent is null.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
szt honey::TreeNode< Data_, Key_, Alloc >::sibCount ( ) const
inline

Get number of siblings (count doesn't include this node)

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
bool honey::TreeNode< Data_, Key_, Alloc >::sibHasNext ( ) const
inline

Check if node has a next sibling.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
bool honey::TreeNode< Data_, Key_, Alloc >::sibHasPrev ( ) const
inline

Check if node has a previous sibling.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<ChildConstIter, ChildConstIter> honey::TreeNode< Data_, Key_, Alloc >::sibNext ( ) const
inline

Returns forward iterator range starting at next sibling.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<ChildIter, ChildIter> honey::TreeNode< Data_, Key_, Alloc >::sibNext ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<ChildConstIterR, ChildConstIterR> honey::TreeNode< Data_, Key_, Alloc >::sibPrev ( ) const
inline

Returns reverse iterator range starting at previous sibling.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
Range_<ChildIterR, ChildIterR> honey::TreeNode< Data_, Key_, Alloc >::sibPrev ( )
inline
template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::SIGNAL ( sigDestroy  ,
(TreeNode< Data_, Key_, Alloc > &src)   
)

Called before class is destroyed.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::SIGNAL ( sigSetData  ,
(TreeNode< Data_, Key_, Alloc > &src, Data data)   
)

Called after data is set.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::SIGNAL ( sigSetKey  ,
(TreeNode< Data_, Key_, Alloc > &src, Key key)   
)

Called after key is set.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::SIGNAL ( sigInsertChild  ,
(TreeNode< Data_, Key_, Alloc > &src, TreeNode< Data_, Key_, Alloc > *childPos, TreeNode< Data_, Key_, Alloc > &child  
)

Called after child is inserted.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::SIGNAL ( sigRemoveChild  ,
(TreeNode< Data_, Key_, Alloc > &src, TreeNode< Data_, Key_, Alloc > &child  
)

Called before child is removed.

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
honey::TreeNode< Data_, Key_, Alloc >::SIGNAL ( sigSetParent  ,
(TreeNode< Data_, Key_, Alloc > &src, TreeNode< Data_, Key_, Alloc > *parent)   
)

Called before new parent is set (called from parent when inserting/removing child)

Friends And Related Function Documentation

template<class Data_, class Key_ = Id, template< class > class Alloc = SmallAllocator>
template<class , class , template< class > class>
friend class TreeNode
friend

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