Class ISubBlockCache#

Inheritance Relationships#

Base Types#

Class Documentation#

class ISubBlockCache : public libCZI::ISubBlockCacheStatistics, public libCZI::ISubBlockCacheControl, public libCZI::ISubBlockCacheOperation#

Interface for a caching component (which can be used with the compositors). The intended use is as follows:

  • Whenever the bitmap corresponding to a subblock (c.f. ISubBlock::CreateBitmap

    ) is accessed, the bitmap may be added

    to a cache object, where the subblock-index is the key.

  • Whenever a bitmap is needed (for a given subblock-index), the cache object is first queried whether it contains the bitmap. If yes, then the bitmap

    returned may be used instead of executing the subblock-read-and-decode operation. In order to control the memory usage of the cache, the cache object must be pruned (i.e. subblocks are removed from the cache). Currently this means, that the Prune-method must be called manually. The cache object does not do any pruning automatically. The operations of Adding, Querying and Pruning the cache object are thread-safe.

Public Functions

~ISubBlockCache() override = default#
ISubBlockCache() = default#
ISubBlockCache(const ISubBlockCache&) = delete#
ISubBlockCache &operator=(const ISubBlockCache&) = delete#
ISubBlockCache(ISubBlockCache&&) noexcept = delete#
ISubBlockCache &operator=(ISubBlockCache&&) noexcept = delete#