HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UT_ARTNode4< T > Class Template Referencefinal

#include <UT_ARTMap.h>

+ Inheritance diagram for UT_ARTNode4< T >:

Public Types

using parent_t = UT_ARTNode< T >
 
using parent_ptr_t = UT_ARTNodePtr< parent_t >
 
- Public Types inherited from UT_ARTNode< T >
using value_type = T
 

Public Member Functions

 UT_ARTNode4 (const UT_StringHolder &key, UT_StringView prefix)
 
 UT_NON_COPYABLE (UT_ARTNode4)
 
 ~UT_ARTNode4 () override
 
const UT_StringHoldertype () const override
 
bool isFull () const override
 
parent_t ** insertChild (parent_t **ref, parent_ptr_t child) override
 
parent_ptr_t stealChild (parent_t **ref, parent_t *child) override
 
parent_t ** findPartialPrefixChild (const UT_StringView &prefix) override
 
parent_tnextChild (int &index) override
 
const parent_tnextChild (int &index) const override
 
parent_ptr_t stealChild (parent_t **ref, int idx) override
 
- Public Member Functions inherited from UT_ARTNode< T >
 UT_ARTNode (const UT_StringHolder &key, const UT_StringView &prefix)
 
virtual ~UT_ARTNode ()=default
 
 UT_NON_COPYABLE (UT_ARTNode)
 
UT_StringHolder key () const
 
SYS_FORCE_INLINE const value_typevalue () const
 
template<typename... Args>
void emplace (Args &&...args)
 
SYS_FORCE_INLINE value_typevalue ()
 
SYS_FORCE_INLINE bool hasValue () const
 
SYS_FORCE_INLINE const
UT_StringView
prefix () const
 
SYS_FORCE_INLINE bool isLeaf () const
 
SYS_FORCE_INLINE bool allowsPartial () const
 
void setAllowsPartial (bool allow)
 
void debug (UT_WorkBuffer &wbuf, unsigned indent=0) const
 
void compress (UT_ARTNode< T > **ref)
 
virtual UT_ARTNode< T > ** insertChild (UT_ARTNode **ref, UT_ARTNodePtr< UT_ARTNode< T >> node)=0
 
void moveChildren (UT_ARTNode< T > **ref)
 
exint getCommonPrefixLength (const UT_StringView &key, const UT_StringView &node_prefix)
 
void moveHeader (UT_ARTNode< T > &move_to)
 
template<typename NodeT >
UT_ARTNodePtr< NodeT > newNode ()
 

Public Attributes

unsigned char myChildKeys [4] = {0,0,0,0}
 
parent_tmyChildren [4] = {nullptr, nullptr, nullptr, nullptr}
 
- Public Attributes inherited from UT_ARTNode< T >
UT_StringHolder myKey
 
UT_StringView myPrefix
 
UT_Optional< value_typemyValue
 
bool myAllowsPartial = false
 
uint8_t myNumChildren = 0
 

Additional Inherited Members

- Static Public Member Functions inherited from UT_ARTNode< T >
static void destroy (UT_ARTNode< T > *node)
 

Detailed Description

template<typename T>
class UT_ARTNode4< T >

Definition at line 435 of file UT_ARTMap.h.

Member Typedef Documentation

template<typename T>
using UT_ARTNode4< T >::parent_ptr_t = UT_ARTNodePtr<parent_t>

Definition at line 439 of file UT_ARTMap.h.

template<typename T>
using UT_ARTNode4< T >::parent_t = UT_ARTNode<T>

Definition at line 438 of file UT_ARTMap.h.

Constructor & Destructor Documentation

template<typename T>
UT_ARTNode4< T >::UT_ARTNode4 ( const UT_StringHolder key,
UT_StringView  prefix 
)
inline

Definition at line 450 of file UT_ARTMap.h.

template<typename T>
UT_ARTNode4< T >::~UT_ARTNode4 ( )
inlineoverride

Definition at line 456 of file UT_ARTMap.h.

Member Function Documentation

template<typename T >
UT_ARTNode< T > ** UT_ARTNode4< T >::findPartialPrefixChild ( const UT_StringView prefix)
inlineoverridevirtual

Implements UT_ARTNode< T >.

Definition at line 87 of file UT_ARTMapImpl.h.

template<typename T >
UT_ARTNode< T > ** UT_ARTNode4< T >::insertChild ( parent_t **  ref,
parent_ptr_t  child 
)
inlineoverride

Definition at line 29 of file UT_ARTMapImpl.h.

template<typename T >
bool UT_ARTNode4< T >::isFull ( ) const
inlineoverridevirtual

Implements UT_ARTNode< T >.

Definition at line 22 of file UT_ARTMapImpl.h.

template<typename T >
UT_ARTNode< T > * UT_ARTNode4< T >::nextChild ( int index)
inlineoverridevirtual

Implements UT_ARTNode< T >.

Definition at line 106 of file UT_ARTMapImpl.h.

template<typename T >
const UT_ARTNode< T > * UT_ARTNode4< T >::nextChild ( int index) const
inlineoverridevirtual

Implements UT_ARTNode< T >.

Definition at line 118 of file UT_ARTMapImpl.h.

template<typename T >
UT_ARTNodePtr< UT_ARTNode< T > > UT_ARTNode4< T >::stealChild ( parent_t **  ref,
parent_t child 
)
inlineoverridevirtual

Implements UT_ARTNode< T >.

Definition at line 67 of file UT_ARTMapImpl.h.

template<typename T >
UT_ARTNodePtr< UT_ARTNode< T > > UT_ARTNode4< T >::stealChild ( parent_t **  ref,
int  idx 
)
inlineoverridevirtual

Implements UT_ARTNode< T >.

Definition at line 130 of file UT_ARTMapImpl.h.

template<typename T>
const UT_StringHolder& UT_ARTNode4< T >::type ( ) const
inlineoverridevirtual

Implements UT_ARTNode< T >.

Definition at line 464 of file UT_ARTMap.h.

template<typename T>
UT_ARTNode4< T >::UT_NON_COPYABLE ( UT_ARTNode4< T )

Member Data Documentation

template<typename T>
unsigned char UT_ARTNode4< T >::myChildKeys[4] = {0,0,0,0}

Definition at line 482 of file UT_ARTMap.h.

template<typename T>
parent_t* UT_ARTNode4< T >::myChildren[4] = {nullptr, nullptr, nullptr, nullptr}

Definition at line 483 of file UT_ARTMap.h.


The documentation for this class was generated from the following files: