Specialized TNodeHandler for class FTree which recycles extended information objects of type EIDirectory, EISymLinkFile, and EISymLinkDir with node deletion.
In respect to the node name allocation, this type behaves like default handler StringTreeNamesDynamic. In debug compilations, statistics variables DBG_STATS_STRINGTREE_NAMES and DBG_STATS_STRINGTREE_NAME_OVERFLOWS are increased, just like the original does.
#include <ftree.hpp>
Public Type Index: | |
| using | CharacterType = PathCharType |
| using | NameStringType = PathString |
Public Static Method Index: | |
| static void | AllocateExtendedInfo (StringTree< MonoAllocator, FTValue, FTreeNodeHandler >::Cursor &node, const PathString &symLinkDest, const PathString &symLinkRealPath) |
| static void | FreeNode (TTree::Node &node, TTree &tree) |
| static void | InitializeNode (TTree::Node &node, TTree &tree) |
|
static |
Implements void AllocateExtendedInfo(Cursor&, const PathString&, const PathString&) .
| node | The node add extended information to. |
| symLinkDest | In case of symbolic link types, the symbolic link target. |
| symLinkRealPath | In case of symbolic link types, the symbolic link target as real path. |
Definition at line 11 of file ftree.cpp.
|
inlinestatic |
This implementation frees any dynamically allocated memory of the node's name and in addition recycles any extended information object attached to the FTValue object.
| node | The 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. |
| tree | The instance of struct template <typename TAllocator, typename T, typename TNodeHandler, Recycling TRecycling> 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. |
|
inlinestatic |
Copies the node's name to the local string.
| node | The 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. |
| tree | The instance of struct template <typename TAllocator, typename T, typename TNodeHandler, Recycling TRecycling> 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. |