Nugget
|
Public Types | |
enum | { kBucketCount = bucketCount + 1 , kBucketsSize = bucketCount * sizeof(void*) , kNodeSize = nodeSize , kNodeCount = nodeCount , kNodesSize = nodeCount * nodeSize , kBufferSize = kNodesSize + ((nodeAlignment > 1) ? nodeSize-1 : 0) + nodeAlignmentOffset , kNodeAlignment = nodeAlignment , kNodeAlignmentOffset = nodeAlignmentOffset , kAllocFlagBuckets = 0x00400000 } |
typedef fixed_pool | pool_type |
typedef fixed_hashtable_allocator< bucketCount, nodeSize, nodeCount, nodeAlignment, nodeAlignmentOffset, false, OverflowAllocator > | this_type |
typedef OverflowAllocator | overflow_allocator_type |
Public Member Functions | |
fixed_hashtable_allocator (void *pNodeBuffer) | |
fixed_hashtable_allocator (void *pNodeBuffer, const overflow_allocator_type &) | |
fixed_hashtable_allocator (void *pNodeBuffer, void *pBucketBuffer) | |
fixed_hashtable_allocator (void *pNodeBuffer, void *pBucketBuffer, const overflow_allocator_type &) | |
fixed_hashtable_allocator (const this_type &x) | |
fixed_hashtable_allocator & | operator= (const fixed_hashtable_allocator &x) |
void * | allocate (size_t n, int flags=0) |
void * | allocate (size_t n, size_t alignment, size_t offset, int flags=0) |
void | deallocate (void *p, size_t) |
bool | can_allocate () const |
void | reset (void *pNodeBuffer) |
const char * | get_name () const |
void | set_name (const char *pName) |
const overflow_allocator_type & | get_overflow_allocator () const EA_NOEXCEPT |
overflow_allocator_type & | get_overflow_allocator () EA_NOEXCEPT |
void | set_overflow_allocator (const overflow_allocator_type &) |
void | copy_overflow_allocator (const this_type &) |
Protected Attributes | |
pool_type | mPool |
void * | mpBucketBuffer |
|
inline |
Note that we are copying x.mpHead and mpBucketBuffer to our own fixed_pool. See the discussion above in fixed_node_allocator for important information about this.