|
ATLAS Offline Software
|
Go to the documentation of this file.
31 unsigned long end_mask,
32 unsigned long end_offs)
38 m_end_mask (end_mask),
53 delete []
reinterpret_cast<char*
> (
ch);
70 unsigned long pp =
reinterpret_cast<unsigned long> (
ch+1);
71 pp = (pp + m_end_mask) & ~m_end_mask;
74 ch->m_next = m_chunks;
134 b->m_data[maxndx] = 0;
list_block * m_head
The first block in the list.
void clear()
Erase the container.
value_type m_data[1]
The elements.
A single block in the list.
value_type * m_insert
The current insertion point in the list.
void refill()
Allocate a new chunk of blocks.
void nextblock()
Extend the list with another block.
list_block * getblock()
Allocate a new block.
allocator & m_pool
The list allocator.
size_t m_size
The current list size.
size_t nelt() const
Return the number of pointers per block (excluding the end-pointer).
allocator(size_t nelt, size_t nblock, unsigned long end_mask, unsigned long end_offs)
Constructor.
list_block * allocate()
Allocate a new block.
A fast way to store a variable-sized collection of pointers.
One memory allocation chunk.
void fill(H5::Group &out_file, size_t iterations)
void firstblock()
Allocate the first block of the list.
~allocator()
Destructor. Deletes all blocks from this allocator.
static size_t size(size_t nelt)
Size in bytes of a block holding nelt elements (excluding the end-pointer).