ALib C++ Library
Library Version: 2312 R0
Documentation generated by doxygen
Public Types | Public Static Methods | List of all members
StringTreeNamesMonoAlloc< TChar > Struct Template Reference

#include <stringtree.hpp>

Class Description

template<typename TChar = character>
struct aworx::lib::monomem::StringTreeNamesMonoAlloc< TChar >

Built-in implementation usable as template parameter TNodeMaintainer of class StringTree.

This type copies the node's name into memory acquired with the monotonic allocator that the StringTree uses.

Attention
The use of this type is dangerous in respect to memory exhaustion. While class StringTree uses monotonic allocation in a very safe way, with the use of this type, repeated removals and insertions of tree nodes, increase the memory usage.
Consequently, the use of this type is restricted to cases that imply a limited number of insertions.
See also
For more information see documentation of the built-in "default" version of this template parameter type, StringTreeNamesDynamic.
Template Parameters
TCharThe character type of the key strings. This type is used with any interface method of StringTree that accepts a node name or path string.

Definition at line 255 of file stringtree.hpp.

Public Types

using CharacterType = TChar
 
using NameStringType = strings::TString< TChar >
 

Public Static Methods

template<typename TTree >
static void FreeNode (TTree &tree, typename TTree::Node &node)
 
template<typename TTree >
static void InitializeNode (TTree &tree, typename TTree::Node &node)
 

Member Typedef Documentation

◆ CharacterType

using CharacterType = TChar

The character type that the StringTree uses for child name and path strings.

Definition at line 258 of file stringtree.hpp.

◆ NameStringType

The string type of a node's name.

Definition at line 261 of file stringtree.hpp.

Member Function Documentation

◆ FreeNode()

static void FreeNode ( TTree &  tree,
typename TTree::Node &  node 
)
inlinestatic

This implementation does nothing.

See also
See description of this class and the "default implementation" StringTreeNamesDynamic.
Template Parameters
TTreeThe type of the templated instantiation of struct detail::StringTreeBase that this method is invoked by.
Parameters
treeThe instance of struct detail::StringTreeBase that invokes this method. Any member may be accessed, including nodeTable which contains the MonoAllocator that the tree uses for the allocation of nodes.
nodeThe node that is to be removed. Allows access to the key and custom value data. While the parent and sibling nodes are likewise accessible, it is strictly forbidden to modify those.

Definition at line 308 of file stringtree.hpp.

◆ InitializeNode()

static void InitializeNode ( TTree &  tree,
typename TTree::Node &  node 
)
inlinestatic

This implementation copies the node's name to a piece of memory allocated in the MonoAllocator found in field nodeTable of the given tree.

See also
See description of this class and the "default implementation" StringTreeNamesDynamic.
Template Parameters
TTreeThe type of the templated instantiation of struct detail::StringTreeBase that this method is invoked by.
Parameters
treeThe instance of struct detail::StringTreeBase that invokes this method. Any member may be accessed, including nodeTable which contains the MonoAllocator that the tree uses for the allocation of nodes.
nodeThe node that was just created. Allows access to the key and custom value data. While the parent and sibling nodes are likewise accessible, it is strictly forbidden to modify those.

Definition at line 284 of file stringtree.hpp.


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