BloombergLP::bdlcc::SharedObjectPool

This class provides a thread-safe pool of bsl::shared_ptr objects.

Synopsis

Declared in <bdlcc_sharedobjectpool.h>

template<
    class TYPE,
    class CREATOR = ObjectPoolFunctors::DefaultCreator,
    class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
class SharedObjectPool;

Type Aliases

NameDescription
CreatorType Type of the creator functor used by this pool.
ResetterType Type of the resetter functor used by this pool.

Member Functions

NameDescription
SharedObjectPool [constructor]Constructors
~SharedObjectPool [destructor]Destroy this object pool. All objects created by this pool are destroyed (even if some of them are still in use) and memory is reclaimed.
getObject Return a pointer to an object from this object pool. When the last shared pointer to the object is destroyed, the object will be reset as specified at construction and then returned to the pool. If this pool is empty, it is replenished according to the strategy specified at construction.
increaseCapacity Create the specified growBy objects and add them to this object pool. The behavior is undefined unless 0 <= growBy.
numAvailableObjects Return a snapshot of the number of objects available in this pool.
numObjects Return the (instantaneous) number of objects managed by this pool. This includes both the objects available in the pool and the objects that were allocated from the pool and not yet released.
reserveCapacity Create enough objects to satisfy requests for at least the specified growBy objects before the next replenishment. The behavior is undefined unless 0 <= growBy. Note that this method is different from increaseCapacity in that the number of created objects may be less than growBy.
operator BloombergLP::bslmf::NestedTraitDeclaration<SharedObjectPool, UsesBslmaAllocator> Declare that this type uses a bslma allocator.