Base struct of StringTree providing internals.
| T | See template parameters of derived public type. |
| TNodeMaintainer | See template parameters of derived public type. |
| TRecycling | See template parameters of derived public type. |
Definition at line 66 of file stringtreebase.inl.
Inner Type Index: | |
| struct | Node |
| struct | NodeBase |
| struct | NodeKey |
| union | RootNodeSpacer |
| struct | TCursorBase |
Public Type Index: | |
| using | CharacterType = typename TNodeMaintainer::CharacterType |
| using | ConstCursorBase = TCursorBase<true> |
| using | CursorBase = TCursorBase<false> |
| using | NameStorageType = typename TNodeMaintainer::NameStringType |
| using | NameType = const strings::TString<CharacterType> |
| using | NodeList = lang::BidiListHelper<NodeBase> |
| using | SubstringType = typename strings::TSubstring<CharacterType> |
| using | TSharedRecycler = typename decltype(nodeTable)::TSharedRecycler |
| using | ValueType = typename strings::TString<typename TNodeMaintainer::CharacterType> |
Public Field Index: | |
| int | dbgRootDataSet = 0 |
| monomem::HashTable< Node, Node, NodeKey, void, typename NodeKey::Hash, typename NodeKey::EqualTo, typename NodeKey::Access, lang::Caching::Enabled, TRecycling > | nodeTable |
| RootNodeSpacer | root |
| CharacterType | separator |
Public Method Index: | |
| StringTreeBase (MonoAllocator *allocator, CharacterType pathSeparator) | |
| StringTreeBase (MonoAllocator *allocator, TSharedRecycler &pRecycler, CharacterType pathSeparator) | |
| bool | checkChildName (const NameType &name) const |
| using CharacterType = typename TNodeMaintainer::CharacterType |
The character type of node names and paths strings. This is defined using character type definition CharacterType of template type TNodeMaintainer .
Definition at line 83 of file stringtreebase.inl.
| using ConstCursorBase = TCursorBase<true> |
The constant version of type StringTreeBase::TCursorBase .
Definition at line 757 of file stringtreebase.inl.
| using CursorBase = TCursorBase<false> |
The mutable version of type StringTreeBase::TCursorBase .
Definition at line 754 of file stringtreebase.inl.
| using NameStorageType = typename TNodeMaintainer::NameStringType |
The string type of node names and paths. This is defined by NameStringType of template type TNodeMaintainer .
Definition at line 90 of file stringtreebase.inl.
| using NameType = const strings::TString<CharacterType> |
The string type of node names and paths if provided externally for comparison.
Definition at line 86 of file stringtreebase.inl.
| using NodeList = lang::BidiListHelper<NodeBase> |
Alias shortcut for a bidirectional list of Node elements.
Definition at line 75 of file stringtreebase.inl.
| using SubstringType = typename strings::TSubstring<CharacterType> |
The sub-string type of paths. This is defined using character type definition CharacterType of template type TNodeMaintainer .
Definition at line 94 of file stringtreebase.inl.
| using TSharedRecycler = typename decltype(nodeTable)::TSharedRecycler |
The recycler type. See StringTree::TSharedRecycler which exposes this type publicly.
Definition at line 549 of file stringtreebase.inl.
| using ValueType = typename strings::TString<typename TNodeMaintainer::CharacterType> |
The string type of node names and paths.
Definition at line 78 of file stringtreebase.inl.
| int dbgRootDataSet = 0 |
Flag available only in debug-compilations to detect access to root node's value without prior use of method ConstructRootValue . Also, the destructor issues a warning, in case the root node's value was not deleted with DeleteRootValue .
Definition at line 523 of file stringtreebase.inl.
| monomem::HashTable<Node, Node, NodeKey, void, typename NodeKey::Hash, typename NodeKey::EqualTo, typename NodeKey::Access, lang::Caching::Enabled, TRecycling > nodeTable |
The child node hash set. This is used to find children of nodes by name. The set contains all children of all nodes.
Definition at line 545 of file stringtreebase.inl.
| RootNodeSpacer root |
The root node.
Definition at line 516 of file stringtreebase.inl.
| CharacterType separator |
The separator character to use with path strings. This is set once with construction.
Definition at line 531 of file stringtreebase.inl.
|
inline |
Constructor.
| allocator | The monotonic allocator to use. |
| pathSeparator | The separation character used with path strings. |
Definition at line 767 of file stringtreebase.inl.
|
inline |
Constructor taking a shared recycler.
| allocator | The monotonic allocator to use. |
| pRecycler | The shared recycler. |
| pathSeparator | The separation character used with path strings. |
Definition at line 778 of file stringtreebase.inl.
|
inline |
Simple helper method which checks a node name for not being "." or ".." and for not containing a separator character. In debug-compilations, if it does, an ALib warning is raised.
| name | The child name to check. |
true if the name is legal, false otherwise. Definition at line 792 of file stringtreebase.inl.