BloombergLP::ball::CategoryManager_RadixTree_ChildNodeGuard

RAII guard to remove a child node when an exception is thrown during value emplacement in a CategoryManager_RadixTree_Node. This guard ensures exception safety by automatically removing a newly created child node from its parent if the value construction throws an exception.

Synopsis

Declared in <ball_categorymanager_radixtree.h>

template<class t_VALUE>
class CategoryManager_RadixTree_ChildNodeGuard;

Type Aliases

NameDescription
ChildIterator Iterator over the child nodes of a radix tree node.
Node Node is an alias for a node in the radix tree.

Member Functions

NameDescription
CategoryManager_RadixTree_ChildNodeGuard [constructor]Create a guard managing the specified child iterator in the specified parent node. The guard will erase the child from the parent upon destruction unless release() is called.
~CategoryManager_RadixTree_ChildNodeGuard [destructor]Destroy this guard. If release() has not been called, erase the child node from the parent (specified at construction).
release Release this guard, preventing the child node from being erased upon destruction. This method should be called after the value has been successfully emplaced in the child node.