Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::DynamicTable< ALLOCATOR > Class Template Reference

#include <dynamic_table.h>

Collaboration diagram for Realm::DynamicTable< ALLOCATOR >:

Public Types

typedef ALLOCATOR::IT IT
 
typedef ALLOCATOR::ET ET
 
typedef ALLOCATOR::LT LT
 
typedef DynamicTableNodeBase< LT, ITNodeBase
 
using Constructor = typename ALLOCATOR::Constructor
 

Public Member Functions

 DynamicTable (void)
 
 DynamicTable (Constructor elem_ctor)
 
 ~DynamicTable (void)
 
size_t max_entries (void) const
 
bool has_entry (IT index) const
 
ETlookup_entry (IT index, int owner, ET **free_list_head=0, ET **free_list_tail=0)
 
void set_constructor (Constructor &_elem_ctor)
 

Protected Member Functions

NodeBasenew_tree_node (int level, IT first_index, IT last_index, int owner, ET **free_list_head, ET **free_list_tail)
 
void prepend_alloced_node (NodeBase *new_node)
 

Static Protected Member Functions

static intptr_t encode_root_and_level (NodeBase *root, int level)
 
static NodeBaseextract_root (intptr_t rlval)
 
static int extract_level (intptr_t rlval)
 

Protected Attributes

LT lock
 
atomic< intptr_t > root_and_level {0}
 
atomic< NodeBase * > first_alloced_node {nullptr}
 
Constructor elem_ctor
 

Member Typedef Documentation

◆ Constructor

template<typename ALLOCATOR >
using Realm::DynamicTable< ALLOCATOR >::Constructor = typename ALLOCATOR::Constructor

◆ ET

template<typename ALLOCATOR >
typedef ALLOCATOR::ET Realm::DynamicTable< ALLOCATOR >::ET

◆ IT

template<typename ALLOCATOR >
typedef ALLOCATOR::IT Realm::DynamicTable< ALLOCATOR >::IT

◆ LT

template<typename ALLOCATOR >
typedef ALLOCATOR::LT Realm::DynamicTable< ALLOCATOR >::LT

◆ NodeBase

template<typename ALLOCATOR >
typedef DynamicTableNodeBase<LT, IT> Realm::DynamicTable< ALLOCATOR >::NodeBase

Constructor & Destructor Documentation

◆ DynamicTable() [1/2]

template<typename ALLOCATOR >
Realm::DynamicTable< ALLOCATOR >::DynamicTable ( void  )

◆ DynamicTable() [2/2]

template<typename ALLOCATOR >
Realm::DynamicTable< ALLOCATOR >::DynamicTable ( Constructor  elem_ctor)

◆ ~DynamicTable()

template<typename ALLOCATOR >
Realm::DynamicTable< ALLOCATOR >::~DynamicTable ( void  )

Member Function Documentation

◆ encode_root_and_level()

template<typename ALLOCATOR >
static intptr_t Realm::DynamicTable< ALLOCATOR >::encode_root_and_level ( NodeBase root,
int  level 
)
staticprotected

◆ extract_level()

template<typename ALLOCATOR >
static int Realm::DynamicTable< ALLOCATOR >::extract_level ( intptr_t  rlval)
staticprotected

◆ extract_root()

template<typename ALLOCATOR >
static NodeBase * Realm::DynamicTable< ALLOCATOR >::extract_root ( intptr_t  rlval)
staticprotected

◆ has_entry()

template<typename ALLOCATOR >
bool Realm::DynamicTable< ALLOCATOR >::has_entry ( IT  index) const

◆ lookup_entry()

template<typename ALLOCATOR >
ET * Realm::DynamicTable< ALLOCATOR >::lookup_entry ( IT  index,
int  owner,
ET **  free_list_head = 0,
ET **  free_list_tail = 0 
)

◆ max_entries()

template<typename ALLOCATOR >
size_t Realm::DynamicTable< ALLOCATOR >::max_entries ( void  ) const

◆ new_tree_node()

template<typename ALLOCATOR >
NodeBase * Realm::DynamicTable< ALLOCATOR >::new_tree_node ( int  level,
IT  first_index,
IT  last_index,
int  owner,
ET **  free_list_head,
ET **  free_list_tail 
)
protected

◆ prepend_alloced_node()

template<typename ALLOCATOR >
void Realm::DynamicTable< ALLOCATOR >::prepend_alloced_node ( NodeBase new_node)
protected

◆ set_constructor()

template<typename ALLOCATOR >
void Realm::DynamicTable< ALLOCATOR >::set_constructor ( Constructor _elem_ctor)

Member Data Documentation

◆ elem_ctor

template<typename ALLOCATOR >
Constructor Realm::DynamicTable< ALLOCATOR >::elem_ctor
protected

◆ first_alloced_node

template<typename ALLOCATOR >
atomic<NodeBase *> Realm::DynamicTable< ALLOCATOR >::first_alloced_node {nullptr}
protected

◆ lock

template<typename ALLOCATOR >
LT Realm::DynamicTable< ALLOCATOR >::lock
protected

◆ root_and_level

template<typename ALLOCATOR >
atomic<intptr_t> Realm::DynamicTable< ALLOCATOR >::root_and_level {0}
protected

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