#include <bdlcc_sharedobjectpool.h>
◆ CreatorType
template<class TYPE , class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
◆ ResetterType
template<class TYPE , class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
◆ SharedObjectPool() [1/4]
template<class TYPE , class CREATOR , class RESETTER >
◆ SharedObjectPool() [2/4]
template<class TYPE , class CREATOR , class RESETTER >
◆ SharedObjectPool() [3/4]
template<class TYPE , class CREATOR , class RESETTER >
◆ SharedObjectPool() [4/4]
template<class TYPE , class CREATOR , class RESETTER >
Create an object pool that dispenses shared pointers to TYPE. When the pool is depleted, it increases its capacity according to the optionally specified growBy
value. If growBy
is positive, the pool always increases by at least growBy
. If growBy
is negative, the amount of increase begins at -growBy
and then grows geometrically up to an implementation-defined maximum. The optionally specified objectCreator
is called whenever objects must be constructed. If objectCreator
is not specified and the parameterized CREATOR
is the default type (that is, ObjectPoolFunctors::DefaultCreator
), a function that calls the default constructor of TYPE
with placement new, passing this pools allocator if TYPE uses allocator, is used. If the parameterized
CREATORis some other type, and
objectCreatoris not specified, the default value of the
CREATORtype is used. The optionally specified
objectResetteris invoked with a pointer to an object of
TYPEwhen the object is returned to the pool. It must reset the object into a valid state for reuse. If
objectResetteris not specified, a default RESETTER object is used. Optionally specify a basic allocator to supply memory. If
basicAllocatoris 0, the currently installed default allocator is used. The behavior is undefined if
growBy` is 0.
◆ ~SharedObjectPool()
template<class TYPE , class CREATOR , class RESETTER >
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.
◆ BSLMF_NESTED_TRAIT_DECLARATION()
template<class TYPE , class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
◆ getObject()
template<class TYPE , class CREATOR , class RESETTER >
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()
template<class TYPE , class CREATOR , class RESETTER >
Create the specified growBy
objects and add them to this object pool. The behavior is undefined unless 0 <= growBy
.
◆ numAvailableObjects()
template<class TYPE , class CREATOR , class RESETTER >
◆ numObjects()
template<class TYPE , class CREATOR , class RESETTER >
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()
template<class TYPE , class CREATOR , class RESETTER >
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
.
The documentation for this class was generated from the following file: