Bitcoin ABC 0.26.3
P2P Digital Currency
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
RadixTree< T, Adapter >::RadixNode Struct Reference

Public Member Functions

 IMPLEMENT_RCU_REFCOUNT (uint64_t)
 
 RadixNode (uint32_t level, const KeyType &key, RadixElement e)
 
 ~RadixNode ()
 
 RadixNode (const RadixNode &rhs)
 
RadixNodeoperator= (const RadixNode &)=delete
 
std::atomic< RadixElement > * get (uint32_t level, const KeyType &key)
 
bool isShared () const
 
template<typename Callable >
bool forEachChild (Callable &&func) const
 

Private Attributes

union { 
 
   std::array< std::atomic< RadixElement >, CHILD_PER_LEVEL >   children 
 
   std::array< RadixElement, CHILD_PER_LEVEL >   non_atomic_children_DO_NOT_USE 
 
};  
 

Detailed Description

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

Definition at line 345 of file radix.h.

Constructor & Destructor Documentation

◆ RadixNode() [1/2]

template<typename T , typename Adapter = PassthroughAdapter<T>>
RadixTree< T, Adapter >::RadixNode::RadixNode ( uint32_t  level,
const KeyType key,
RadixElement  e 
)
inline

Definition at line 356 of file radix.h.

Here is the call graph for this function:

◆ ~RadixNode()

template<typename T , typename Adapter = PassthroughAdapter<T>>
RadixTree< T, Adapter >::RadixNode::~RadixNode ( )
inline

Definition at line 361 of file radix.h.

Here is the call graph for this function:

◆ RadixNode() [2/2]

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

Definition at line 367 of file radix.h.

Here is the call graph for this function:

Member Function Documentation

◆ forEachChild()

template<typename T , typename Adapter = PassthroughAdapter<T>>
template<typename Callable >
bool RadixTree< T, Adapter >::RadixNode::forEachChild ( Callable &&  func) const
inline

Definition at line 383 of file radix.h.

◆ get()

template<typename T , typename Adapter = PassthroughAdapter<T>>
std::atomic< RadixElement > * RadixTree< T, Adapter >::RadixNode::get ( uint32_t  level,
const KeyType key 
)
inline

Definition at line 377 of file radix.h.

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

◆ IMPLEMENT_RCU_REFCOUNT()

template<typename T , typename Adapter = PassthroughAdapter<T>>
RadixTree< T, Adapter >::RadixNode::IMPLEMENT_RCU_REFCOUNT ( uint64_t  )

◆ isShared()

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

Definition at line 381 of file radix.h.

◆ operator=()

template<typename T , typename Adapter = PassthroughAdapter<T>>
RadixNode & RadixTree< T, Adapter >::RadixNode::operator= ( const RadixNode )
delete

Member Data Documentation

◆ [union]

union { ... } RadixTree< T, Adapter >::RadixNode

◆ children

template<typename T , typename Adapter = PassthroughAdapter<T>>
std::array<std::atomic<RadixElement>, CHILD_PER_LEVEL> RadixTree< T, Adapter >::RadixNode::children

Definition at line 350 of file radix.h.

◆ non_atomic_children_DO_NOT_USE

template<typename T , typename Adapter = PassthroughAdapter<T>>
std::array<RadixElement, CHILD_PER_LEVEL> RadixTree< T, Adapter >::RadixNode::non_atomic_children_DO_NOT_USE

Definition at line 352 of file radix.h.


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