Bitcoin ABC  0.28.12
P2P Digital Currency
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
RadixTree< T, Adapter >::RadixElement Struct Reference
Collaboration diagram for RadixTree< T, Adapter >::RadixElement:
[legend]

Public Member Functions

 RadixElement () noexcept
 
 RadixElement (RadixNode *nodeIn) noexcept
 
 RadixElement (T *leafIn) noexcept
 
void incrementRefCount ()
 RadixElement is designed to be a dumb wrapper. More...
 
void decrementRefCount ()
 
bool isNode () const
 Node features. More...
 
RadixNodegetNode ()
 
const RadixNodegetNode () const
 
bool isLeaf () const
 Leaf features. More...
 
T * getLeaf ()
 
const T * getLeaf () const
 

Private Member Functions

bool getDiscriminant () const
 

Private Attributes

union {
   RadixNode *   node
 
   T *   leaf
 
   uintptr_t   raw
 
}; 
 

Static Private Attributes

static const uintptr_t DISCRIMINANT = 0x01
 

Detailed Description

template<typename T, typename Adapter = PassthroughAdapter<T>>
struct RadixTree< T, Adapter >::RadixElement

Definition at line 274 of file radix.h.

Constructor & Destructor Documentation

◆ RadixElement() [1/3]

template<typename T , typename Adapter = PassthroughAdapter<T>>
RadixTree< T, Adapter >::RadixElement::RadixElement ( )
inlineexplicitnoexcept

Definition at line 286 of file radix.h.

◆ RadixElement() [2/3]

template<typename T , typename Adapter = PassthroughAdapter<T>>
RadixTree< T, Adapter >::RadixElement::RadixElement ( RadixNode nodeIn)
inlineexplicitnoexcept

Definition at line 287 of file radix.h.

◆ RadixElement() [3/3]

template<typename T , typename Adapter = PassthroughAdapter<T>>
RadixTree< T, Adapter >::RadixElement::RadixElement ( T *  leafIn)
inlineexplicitnoexcept

Definition at line 288 of file radix.h.

Member Function Documentation

◆ decrementRefCount()

template<typename T , typename Adapter = PassthroughAdapter<T>>
void RadixTree< T, Adapter >::RadixElement::decrementRefCount ( )
inline

Definition at line 304 of file radix.h.

Here is the call graph for this function:

◆ getDiscriminant()

template<typename T , typename Adapter = PassthroughAdapter<T>>
bool RadixTree< T, Adapter >::RadixElement::getDiscriminant ( ) const
inlineprivate

Definition at line 283 of file radix.h.

Here is the caller graph for this function:

◆ getLeaf() [1/2]

template<typename T , typename Adapter = PassthroughAdapter<T>>
T* RadixTree< T, Adapter >::RadixElement::getLeaf ( )
inline

Definition at line 334 of file radix.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getLeaf() [2/2]

template<typename T , typename Adapter = PassthroughAdapter<T>>
const T* RadixTree< T, Adapter >::RadixElement::getLeaf ( ) const
inline

Definition at line 339 of file radix.h.

Here is the call graph for this function:

◆ getNode() [1/2]

template<typename T , typename Adapter = PassthroughAdapter<T>>
RadixNode* RadixTree< T, Adapter >::RadixElement::getNode ( )
inline

Definition at line 319 of file radix.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getNode() [2/2]

template<typename T , typename Adapter = PassthroughAdapter<T>>
const RadixNode* RadixTree< T, Adapter >::RadixElement::getNode ( ) const
inline

Definition at line 324 of file radix.h.

Here is the call graph for this function:

◆ incrementRefCount()

template<typename T , typename Adapter = PassthroughAdapter<T>>
void RadixTree< T, Adapter >::RadixElement::incrementRefCount ( )
inline

RadixElement is designed to be a dumb wrapper.

This allows any container to release what is held by the RadixElement.

Definition at line 296 of file radix.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isLeaf()

template<typename T , typename Adapter = PassthroughAdapter<T>>
bool RadixTree< T, Adapter >::RadixElement::isLeaf ( ) const
inline

Leaf features.

Definition at line 332 of file radix.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isNode()

template<typename T , typename Adapter = PassthroughAdapter<T>>
bool RadixTree< T, Adapter >::RadixElement::isNode ( ) const
inline

Node features.

Definition at line 317 of file radix.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ 

union { ... }

◆ DISCRIMINANT

template<typename T , typename Adapter = PassthroughAdapter<T>>
const uintptr_t RadixTree< T, Adapter >::RadixElement::DISCRIMINANT = 0x01
staticprivate

Definition at line 282 of file radix.h.

◆ leaf

template<typename T , typename Adapter = PassthroughAdapter<T>>
T* RadixTree< T, Adapter >::RadixElement::leaf

Definition at line 278 of file radix.h.

◆ node

template<typename T , typename Adapter = PassthroughAdapter<T>>
RadixNode* RadixTree< T, Adapter >::RadixElement::node

Definition at line 277 of file radix.h.

◆ raw

template<typename T , typename Adapter = PassthroughAdapter<T>>
uintptr_t RadixTree< T, Adapter >::RadixElement::raw

Definition at line 279 of file radix.h.


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