ALib C++ Library
Library Version: 2402 R1
Documentation generated by doxygen
Loading...
Searching...
No Matches
StringTreeBase< T, TNodeMaintainer, TRecycling >::Node Struct Reference

Description:

template<typename T, typename TNodeMaintainer, typename TRecycling>
struct alib::monomem::detail::StringTreeBase< T, TNodeMaintainer, TRecycling >::Node

This is the "final" internal node type, just adds a field of template type T to its base class.

Objects of this type can not be received directly and all interface is available via public type StringTree::Cursor only, which holds a pointer to an object of this class.

Definition at line 457 of file stringtreebase.inl.

Inheritance diagram for StringTreeBase< T, TNodeMaintainer, TRecycling >::Node:
[legend]
Collaboration diagram for StringTreeBase< T, TNodeMaintainer, TRecycling >::Node:
[legend]

Public Field Index:

data
 
- Public Field Index: inherited from StringTreeBase< T, TNodeMaintainer, TRecycling >::NodeBase
NodeList children
 
uinteger qtyChildren
 
- Public Field Index: inherited from BidiNodeBase< NodeBase >
NodeBase * pprev
 
- Public Field Index: inherited from SidiNodeBase< NodeBase >
NodeBase * pnext
 
- Public Field Index: inherited from StringTreeBase< T, TNodeMaintainer, TRecycling >::NodeKey
NodeNameUnion name
 
NodeBaseparent
 

Public Method Index:

 Node (const Node &)=delete
 
template<typename... TArgs>
 Node (const NodeKey &pKey, TArgs &&... args)
 
 Node (Node &&)=delete
 
template<typename... TArgs>
 Node (NodeBase *pParent, const NameType &pName, TArgs &&... args)
 
- Public Method Index: inherited from StringTreeBase< T, TNodeMaintainer, TRecycling >::NodeBase
 NodeBase (const NodeKey &pKey)
 
 NodeBase (NodeBase *pParent, const NameType &pName)
 
AStringassemblePath (AString &target, const NodeBase *childNode, const NodeBase *maxParent, character separatorChar) const
 
uinteger deleteChild (StringTreeBase *tree, NodeBase *child)
 
uinteger deleteChildren (StringTreeBase *tree)
 
int depth () const
 
NodeBasefindChild (StringTreeBase *tree, const NameType &childName)
 
template<typename... TArgs>
std::pair< NodeBase *, bool > findOrCreateChild (StringTreeBase *tree, const NameType &childName, TArgs &&... args)
 
bool isRoot () const
 
- Public Method Index: inherited from BidiNodeBase< NodeBase >
 BidiNodeBase () noexcept=default
 
 BidiNodeBase (BidiNodeBase &&) noexcept=default
 
 BidiNodeBase (const BidiNodeBase &)=delete
 
 BidiNodeBase (NodeBase *next, NodeBase *prev) noexcept
 
void addBefore (NodeBase *elem)
 
void addBehind (NodeBase *elem)
 
BidiNodeBaseoperator= (BidiNodeBase &&) noexcept=default
 
BidiNodeBaseoperator= (const BidiNodeBase &)=delete
 
NodeBase * prev () const
 
void prev (BidiNodeBase *newPrev)
 
void remove ()
 
void remove (NodeBase *last)
 
- Public Method Index: inherited from SidiNodeBase< NodeBase >
 SidiNodeBase () noexcept=default
 
 SidiNodeBase (const SidiNodeBase &)=delete
 
 SidiNodeBase (NodeBase *next) noexcept
 
 SidiNodeBase (SidiNodeBase &&) noexcept=default
 
NodeBase * addBehind (NodeBase *elem)
 
integer count (SidiNodeBase *end=nullptr) const
 
bool hasNext () const
 
NodeBase * next () const
 
void next (SidiNodeBase *p)
 
SidiNodeBaseoperator= (const SidiNodeBase &)=delete
 
SidiNodeBaseoperator= (SidiNodeBase &&) noexcept=default
 
bool pointsTo (const SidiNodeBase *elem) const
 
NodeBase * removeNext ()
 
NodeBase * removeRangeBehind (NodeBase *last)
 
- Public Method Index: inherited from StringTreeBase< T, TNodeMaintainer, TRecycling >::NodeKey
 NodeKey (NodeBase *pParent, const NameType &pName)
 

Additional Inherited Members

- Public Type Index: inherited from BidiNodeBase< NodeBase >
using FWDNode
 

Field Details:

◆ data

template<typename T , typename TNodeMaintainer , typename TRecycling >
T data

The templated custom data object stored with each node.

Definition at line 460 of file stringtreebase.inl.

Constructor(s) / Destructor Details::

◆ Node() [1/4]

template<typename T , typename TNodeMaintainer , typename TRecycling >
Node ( const Node & )
delete

Deleted copy constructor.

◆ Node() [2/4]

template<typename T , typename TNodeMaintainer , typename TRecycling >
Node ( Node && )
delete

Deleted move constructor.

◆ Node() [3/4]

template<typename T , typename TNodeMaintainer , typename TRecycling >
template<typename... TArgs>
Node ( const NodeKey & pKey,
TArgs &&... args )
inline

Constructor. Custom data is default-initialized.

Template Parameters
TArgsTypes of variadic parameters given with parameter args .
Parameters
pKeyThe key portion of the node.
argsVariadic parameters to be forwarded to constructor of custom type T .

Definition at line 475 of file stringtreebase.inl.

◆ Node() [4/4]

template<typename T , typename TNodeMaintainer , typename TRecycling >
template<typename... TArgs>
Node ( NodeBase * pParent,
const NameType & pName,
TArgs &&... args )
inline

Constructor. Custom data is default-initialized.

Template Parameters
TArgsTypes of variadic parameters given with parameter args .
Parameters
pParentParent node to search a child for.
pNameChild name to search
argsVariadic parameters to be forwarded to constructor of custom type T .

Definition at line 488 of file stringtreebase.inl.


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