16 #if !defined(OPENNURBS_FSP_INC_)
17 #define OPENNURBS_FSP_INC_
53 size_t sizeof_element,
54 size_t element_count_estimate,
55 size_t block_element_capacity
62 size_t SizeofElement()
const;
68 void* AllocateElement();
104 void ReturnElement(
void* p);
125 size_t ActiveElementCount()
const;
131 size_t TotalElementCount()
const;
177 void* FirstElement();
178 void* FirstElement(
size_t element_index );
249 void* FirstBlock(
size_t* block_element_count );
274 void* NextBlock(
size_t* block_element_count );
298 void* Element(
size_t element_index)
const;
308 void SetHeap( ON_MEMORY_POOL* heap );
317 ON_MEMORY_POOL* Heap();
326 void EmergencyDestroy();
335 void* m_al_element_stack;
338 void* m_qwerty_it_block;
339 void* m_qwerty_it_element;
343 void* m_al_element_array;
345 size_t m_sizeof_element;
346 size_t m_block_element_count;
347 size_t m_active_element_count;
348 size_t m_total_element_count;
349 ON_MEMORY_POOL* m_heap;
353 size_t BlockElementCapacity(
const void* block )
const;
356 size_t BlockElementCount(
const void* block )
const;
468 void*
FirstBlock(
size_t* block_element_count );
487 void*
NextBlock(
size_t* block_element_count );
529 size_t element_count_estimate,
530 size_t block_element_count
687 T*
NextBlock(
size_t* block_element_count );
712 T*
Element(
size_t element_index)
const;
722 void SetHeap( ON_MEMORY_POOL* heap );
731 ON_MEMORY_POOL*
Heap();
751 #include "opennurbs_fsp_defs.h"
void SetHeap(ON_MEMORY_POOL *heap)
size_t SizeofElement() const
bool Create(size_t element_count_estimate, size_t block_element_count)
T * FirstBlock(size_t *block_element_count)
class ON_FixedSizePool & m_fsp
T * Element(size_t element_index) const
size_t ActiveElementCount() const
~ON_SimpleFixedSizePool()
void * FirstBlock(size_t *block_element_count)
void * NextBlock(size_t *block_element_count)
T * NextBlock(size_t *block_element_count)
size_t TotalElementCount() const