![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
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 101 of file tracking-heap-block-provider.cpp.
Public Member Functions | |
| BlockPool () | |
| void | initialise (size_t blockSize) |
| ~BlockPool () | |
| void | discard () |
| mark all managed blocks as disposed | |
| uint | prepare_for (uint number_of_expected_buffers) |
| Block & | createBlock () |
| Block * | find (void *blockLocation) |
| Block * | transferResponsibility (Block *allocatedBlock) |
| size_t | size () const |
| bool | isValid () const |
| operator bool () const | |
Private Member Functions | |
| bool | verify_all_children_idle () |
Static Private Member Functions | |
| static bool | is_in_sane_state (Block const &block) |
Private Attributes | |
| uint | maxAllocCount_ |
| size_t | memBlockSize_ |
| PoolBlocks | blockList_ |
|
inline |
Definition at line 108 of file tracking-heap-block-provider.cpp.
|
inline |
Definition at line 122 of file tracking-heap-block-provider.cpp.
References BlockPool::verify_all_children_idle().
Here is the call graph for this function:
|
inline |
Definition at line 115 of file tracking-heap-block-provider.cpp.
References BlockPool::memBlockSize_.
Referenced by TrackingHeapBlockProvider::getBlockPoolFor().
Here is the caller graph for this function:
|
inline |
mark all managed blocks as disposed
Definition at line 131 of file tracking-heap-block-provider.cpp.
References BlockPool::blockList_.
Definition at line 138 of file tracking-heap-block-provider.cpp.
References BlockPool::blockList_, BlockPool::maxAllocCount_, and ScopedPtrVect< T >::size().
Referenced by TrackingHeapBlockProvider::prepareBuffers().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 152 of file tracking-heap-block-provider.cpp.
References BlockPool::blockList_, ScopedPtrVect< T >::manage(), and BlockPool::memBlockSize_.
Referenced by TrackingHeapBlockProvider::provideLockedBuffer().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 159 of file tracking-heap-block-provider.cpp.
References BlockPool::blockList_.
Referenced by TrackingHeapBlockProvider::locateBlock().
Here is the caller graph for this function:Definition at line 166 of file tracking-heap-block-provider.cpp.
References BlockPool::blockList_, and ScopedPtrVect< T >::detach().
Referenced by TrackingHeapBlockProvider::mark_emitted().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 173 of file tracking-heap-block-provider.cpp.
References BlockPool::blockList_, and ScopedPtrVect< T >::size().
Here is the call graph for this function:
|
inline |
Definition at line 179 of file tracking-heap-block-provider.cpp.
References BlockPool::blockList_, and ScopedPtrVect< T >::empty().
Referenced by BlockPool::operator bool().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineexplicit |
Definition at line 185 of file tracking-heap-block-provider.cpp.
References BlockPool::isValid().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 192 of file tracking-heap-block-provider.cpp.
References BlockPool::blockList_, ERROR_LOG_AND_IGNORE, and BlockPool::is_in_sane_state().
Referenced by BlockPool::~BlockPool().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestaticprivate |
Definition at line 203 of file tracking-heap-block-provider.cpp.
References Block::was_closed(), and Block::was_used().
Referenced by BlockPool::verify_all_children_idle().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 103 of file tracking-heap-block-provider.cpp.
Referenced by BlockPool::prepare_for().
|
private |
Definition at line 104 of file tracking-heap-block-provider.cpp.
Referenced by BlockPool::createBlock(), and BlockPool::initialise().
|
private |
Definition at line 105 of file tracking-heap-block-provider.cpp.
Referenced by BlockPool::createBlock(), BlockPool::discard(), BlockPool::find(), BlockPool::isValid(), BlockPool::prepare_for(), BlockPool::size(), BlockPool::transferResponsibility(), and BlockPool::verify_all_children_idle().
Collaboration diagram for BlockPool: