Lumiera  0.pre.03
»edit your freedom«
BlockPool Class Reference

Description

Pool of allocated buffer Blocks of a specific size. Helper for implementing a Diagnostic BufferProvider; actually does just heap allocations for the Blocks, but keeps a collection of allocated Blocks around. Individual entries can be retrieved and thus removed from the responsibility of BlockPool.

The idea is that each buffer starts its lifecycle within some pool and later gets "emitted" to an output sequence, where it remains for later investigation and diagnostics.

Definition at line 104 of file tracking-heap-block-provider.cpp.

Public Member Functions

BlockcreateBlock ()
 
Blockfind (void *blockLocation)
 
void initialise (size_t blockSize)
 
bool isValid () const
 
 operator bool () const
 
uint prepare_for (uint number_of_expected_buffers)
 
size_t size () const
 
BlocktransferResponsibility (Block *allocatedBlock)
 

Private Member Functions

bool verify_all_children_idle ()
 

Static Private Member Functions

static bool is_in_sane_state (Block const &block)
 

Private Attributes

PoolHolder blockList_
 
uint maxAllocCount_
 
size_t memBlockSize_
 
+ Collaboration diagram for BlockPool:

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