ocean.util.container.pool.model

Modules

IAggregatePool
module ocean.util.container.pool.model.IAggregatePool

Pool of structs or classes. Adds the following features to the base class: * Iteration over all items in the pool, or all busy or idle items. (See further notes below.) * get() and fill() methods which accept a lazy parameter for a new item to be added to the pool, if needed. * For structs, and classes with a default (paramaterless) constructor, get() and fill() methods which automatically create new pool items, without requiring them to be passed via a lazy argument. * Implementation of the item index (required by IPool) as a size_t member of the item type, called 'object_pool_index'. It is required that the item type has this member.

IFreeList
module ocean.util.container.pool.model.IFreeList

Interfaces to manage and get information about a free list.

ILimitable
module ocean.util.container.pool.model.ILimitable

Interfaces to manage and get information about a limitable pool. A limitable pool has a maximum size (i.e. number of items) which cannot be exceeded.

IPool
module ocean.util.container.pool.model.IPool

Base class for all types of pool. Provides the following features: * A set of items, each either busy or idle. * Idle items can be got from the pool, thus becoming busy, using get(). * Busy items can be returned to the pool, thus becoming idle, with recycle(). * The total number of items in the pool, as well as the number of busy or idle items can be queried. * The entire pool can be emptied, returning all items to the idle state, with clear(). * A limit can be applied to the pool, which prevents more than the specified number of items from being created. * A specified number of items can be pre-allocated in the pool using the fill() method.

IPoolInfo
module ocean.util.container.pool.model.IPoolInfo

Informational interface to an object pool, which only provides methods to get info about the state of the pool, no methods to modify anything.

IResettable
module ocean.util.container.pool.model.IResettable

TODO: description of module