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.