Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR > Class Template Reference

#include <dynamic_table.h>

Public Types

typedef _ET ET
 
using Constructor = CONSTRUCTOR
 
typedef Mutex LT
 
typedef ID::IDType IT
 
typedef DynamicTableNode< atomic< DynamicTableNodeBase< LT, IT > * >, 1<< INNER_BITS, LT, ITINNER_TYPE
 
typedef DynamicTableNode< ET, 1<< LEAF_BITS, LT, ITLEAF_TYPE
 
typedef DynamicTableFreeList< DynamicTableAllocator< ET, _INNER_BITS, _LEAF_BITS, Constructor > > FreeList
 

Static Public Member Functions

static std::vector< FreeList * > & get_registered_freelists (Mutex *&lock)
 
static void register_freelist (FreeList *free_list)
 
static ETsteal_freelist_element (FreeList *requestor=nullptr)
 
static LEAF_TYPEnew_leaf_node (IT first_index, IT last_index, int owner, ET **free_list_head, ET **free_list_tail, const Constructor &elem_ctor_obj)
 

Static Public Attributes

static const size_t INNER_BITS = _INNER_BITS
 
static const size_t LEAF_BITS = _LEAF_BITS
 

Member Typedef Documentation

◆ Constructor

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
using Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::Constructor = CONSTRUCTOR

◆ ET

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
typedef _ET Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::ET

◆ FreeList

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
typedef DynamicTableFreeList< DynamicTableAllocator<ET, _INNER_BITS, _LEAF_BITS, Constructor> > Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::FreeList

◆ INNER_TYPE

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
typedef DynamicTableNode<atomic<DynamicTableNodeBase<LT, IT> *>, 1 << INNER_BITS, LT, IT> Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::INNER_TYPE

◆ IT

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
typedef ID::IDType Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::IT

◆ LEAF_TYPE

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
typedef DynamicTableNode<ET, 1 << LEAF_BITS, LT, IT> Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::LEAF_TYPE

◆ LT

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
typedef Mutex Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::LT

Member Function Documentation

◆ get_registered_freelists()

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
static std::vector< FreeList * > & Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::get_registered_freelists ( Mutex *&  lock)
static

◆ new_leaf_node()

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
static LEAF_TYPE * Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::new_leaf_node ( IT  first_index,
IT  last_index,
int  owner,
ET **  free_list_head,
ET **  free_list_tail,
const Constructor elem_ctor_obj 
)
static

◆ register_freelist()

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
static void Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::register_freelist ( FreeList free_list)
static

◆ steal_freelist_element()

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
static ET * Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::steal_freelist_element ( FreeList requestor = nullptr)
static

Member Data Documentation

◆ INNER_BITS

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
const size_t Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::INNER_BITS = _INNER_BITS
static

◆ LEAF_BITS

template<typename _ET , size_t _INNER_BITS, size_t _LEAF_BITS, typename CONSTRUCTOR = DefaultElementConstructor<_ET>>
const size_t Realm::DynamicTableAllocator< _ET, _INNER_BITS, _LEAF_BITS, CONSTRUCTOR >::LEAF_BITS = _LEAF_BITS
static

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