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 70 of file stringtreebase.inl.
Public Types | |
| using | CharacterType = typename TNodeMaintainer::CharacterType |
| using | NameType = typename TNodeMaintainer::NameStringType |
| using | NodeList = lib::detail::BidiListHelper< Node > |
| using | SubstringType = typename strings::TSubstring< CharacterType > |
| using | TSharedRecycler = typename decltype(nodeTable)::TSharedRecycler |
| using | ValueType = typename strings::TString< typename TNodeMaintainer::CharacterType > |
Inner Classes | |
| struct | Node |
| struct | NodeKey |
| struct | NodePtrBase |
Public Fields | |
| monomem::HashTable< Node, Node, NodeKey, void, typename NodeKey::Hash, typename NodeKey::EqualTo, typename NodeKey::Access, Caching::Enabled, TRecycling > | nodeTable |
| Node | root |
| CharacterType | separator |
Public Methods | |
| template<typename... TArgs> | |
| StringTreeBase (MonoAllocator *allocator, CharacterType pathSeparator, TArgs &&... args) | |
| template<typename... TArgs> | |
| StringTreeBase (MonoAllocator *allocator, TSharedRecycler &pRecycler, CharacterType pathSeparator, TArgs &&... args) | |
| bool | checkChildName (const NameType &name) |
| 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 86 of file stringtreebase.inl.
| using NameType = 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 NodeList = lib::detail::BidiListHelper<Node> |
Alias shortcut for a bidirectional list of Node elements.
Definition at line 78 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 449 of file stringtreebase.inl.
| using ValueType = typename strings::TString<typename TNodeMaintainer::CharacterType> |
The string type of node names and paths.
Definition at line 81 of file stringtreebase.inl.
|
inline |
Constructor.
| TArgs | Types of variadic parameters given with parameter args. |
| allocator | The monotonic allocator to use. |
| pathSeparator | The separation character used with path strings. |
| args | Variadic parameters to be forwarded to constructor of custom type T of this tree's root node. |
Definition at line 650 of file stringtreebase.inl.
|
inline |
Constructor taking a shared recycler.
| TArgs | Types of variadic parameters given with parameter args. |
| allocator | The monotonic allocator to use. |
| pRecycler | The shared recycler. |
| pathSeparator | The separation character used with path strings. |
| args | Variadic parameters to be forwarded to constructor of custom type T of this tree's root node. |
Definition at line 672 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 687 of file stringtreebase.inl.
| monomem::HashTable<Node, Node, NodeKey, void, typename NodeKey::Hash, typename NodeKey::EqualTo, typename NodeKey::Access, 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 445 of file stringtreebase.inl.
| Node root |
The root node.
Definition at line 425 of file stringtreebase.inl.
| CharacterType separator |
The separator character to use with path strings. This is set once with construction.
Definition at line 431 of file stringtreebase.inl.