Class free_blocks_calculator

Class Documentation

class free_blocks_calculator

Calculates the # of free blocks in the arena, given the set of all blocks and (possibly) a set of caches which might contain some of the blocks.

This calculation can’t be ONLY be a member of the base_arena_map and its derived classes, because they have no way to calculate free blocks with a just created set of new caches that have not yet been added to the arena (pending verification after creation). A double-dispatch approach via this class works for all cases.

Public Functions

inline explicit free_blocks_calculator(bool oos_ok)
free_blocks_calculator(const free_blocks_calculator&) = delete
free_blocks_calculator(free_blocks_calculator&&) = delete
inline cds::block3D_vectorno operator()(const cds::block3D_vectorno &c_all_blocks) const
cds::block3D_vectorno operator()(const cds::block3D_vectorno &c_all_blocks, const cads::acache_vectorro &c_all_caches) const
const free_blocks_calculator &operator=(const free_blocks_calculator&) = delete
free_blocks_calculator &operator=(free_blocks_calculator&&) = delete