Constructors

Synopses

Declared in <bdlcc_objectpool.h>

Create an object pool that invokes the default constructor of the the parameterized TYPE to construct objects. When the pool is depleted, it will increase its capacity according to the optionally specified growBy value. If growBy is positive, the pool replenishes itself with at least growBy new objects. If growBy is negative, the amount of increase begins at ‐growBy and grows geometrically up to an implementation‐defined maximum. When objects are returned to the pool, the default value of RESETTER is invoked with a pointer to the returned object to restore the object to a reusable state. Optionally specify a basicAllocator used to supply memory. If basicAllocator is 0, the currently installed default allocator is used. The behavior is undefined unless 0 != growBy.

explicit
ObjectPool(
    int growBy = ‐1,
    bslma::Allocator* basicAllocator = 0);

Same as the preceding overload, using the default growBy value.

explicit
ObjectPool(
    CREATOR const& objectCreator,
    bslma::Allocator* basicAllocator = 0);

Same as the preceding overload, using the default growBy value.

template<class ANYPROTO>
explicit
ObjectPool(
    bsl::function<ANYPROTO> const& objectCreator,
    bslma::Allocator* basicAllocator = 0);

Create an object pool that uses the specified objectCreator (encapsulating the construction of objects) to create objects. The client must ensure that objectCreator(buf, alloc) creates an object at memory location buf using alloc to supply memory. When the pool is depleted, it will grow capacity according to the optionally specified growBy value. If growBy is positive, the pool replenishes itself with at least growBy new objects. If growBy is negative, the amount of increase begins at ‐growBy and grows geometrically up to an implementation‐defined maximum. When objects are returned to the pool, the default value of RESETTER is invoked with a pointer to the returned object to restore the object to a reusable state. Optionally specify a basicAllocator used to supply memory. If basicAllocator is 0, the currently installed default allocator is used. The behavior is undefined unless 0 != growBy.

explicit
ObjectPool(
    CREATOR const& objectCreator,
    int growBy,
    bslma::Allocator* basicAllocator = 0);

DEPRECATED: Use a creator of the parameterized CREATOR type.

template<class ANYPROTO>
explicit
ObjectPool(
    bsl::function<ANYPROTO> const& objectCreator,
    int growBy,
    bslma::Allocator* basicAllocator = 0);

Create an object pool that uses the specified objectCreator (encapsulating the construction of objects) to create objects. The client must ensure that objectCreator(buf, alloc) creates an object at memory location buf using alloc to supply memory. When the pool is depleted, it will increase its capacity according to the optionally specified growBy value. If growBy is positive, the pool replenishes itself with at least growBy new objects. If growBy is negative, the amount of increase begins at ‐growBy and grows geometrically up to an implementation‐defined maximum. When objects are returned to the pool, the specified objectResetter is invoked with a pointer to the returned object to restore the object to a reusable state. Optionally specify a basicAllocator used to supply memory. If basicAllocator is 0, the currently installed default allocator is used. The behavior is undefined unless 0 != growBy.

ObjectPool(
    CREATOR const& objectCreator,
    RESETTER const& objectResetter,
    int growBy = ‐1,
    bslma::Allocator* basicAllocator = 0);

Created with MrDocs