Quick Links:

bal | bbl | bdl | bsl

Public Types | Public Member Functions

bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER > Class Template Reference

#include <bdlcc_sharedobjectpool.h>

List of all members.

Public Types

typedef CREATOR CreatorType
typedef RESETTER ResetterType

Public Member Functions

 BSLMF_NESTED_TRAIT_DECLARATION (SharedObjectPool, bslma::UsesBslmaAllocator)
 SharedObjectPool (int growBy=-1, bslma::Allocator *basicAllocator=0)
 SharedObjectPool (const CREATOR &objectCreator, bslma::Allocator *basicAllocator=0)
 SharedObjectPool (const CREATOR &objectCreator, int growBy, bslma::Allocator *basicAllocator=0)
 SharedObjectPool (const CREATOR &objectCreator, const RESETTER &objectResetter, int growBy=-1, bslma::Allocator *basicAllocator=0)
 ~SharedObjectPool ()
bsl::shared_ptr< TYPE > getObject ()
void increaseCapacity (int growBy)
void reserveCapacity (int growBy)
int numAvailableObjects () const
int numObjects () const

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


Member Typedef Documentation

template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
typedef CREATOR bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::CreatorType
template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
typedef RESETTER bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::ResetterType

Constructor & Destructor Documentation

template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::SharedObjectPool ( int  growBy = -1,
bslma::Allocator basicAllocator = 0 
) [explicit]
template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::SharedObjectPool ( const CREATOR &  objectCreator,
bslma::Allocator basicAllocator = 0 
) [explicit]
template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::SharedObjectPool ( const CREATOR &  objectCreator,
int  growBy,
bslma::Allocator basicAllocator = 0 
)
template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::SharedObjectPool ( const CREATOR &  objectCreator,
const RESETTER &  objectResetter,
int  growBy = -1,
bslma::Allocator basicAllocator = 0 
)
template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::~SharedObjectPool (  ) 

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.


Member Function Documentation

template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::BSLMF_NESTED_TRAIT_DECLARATION ( SharedObjectPool< TYPE, CREATOR, RESETTER >  ,
bslma::UsesBslmaAllocator   
)
template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
bsl::shared_ptr<TYPE> bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::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.

template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
void bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::increaseCapacity ( int  growBy  ) 

Create the specified growBy objects and add them to this object pool. The behavior is undefined unless 0 <= growBy.

template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
void bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::reserveCapacity ( int  growBy  ) 

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.

template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
int bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::numAvailableObjects (  )  const

Return a snapshot of the number of objects available in this pool.

template<class TYPE, class CREATOR = ObjectPoolFunctors::DefaultCreator, class RESETTER = ObjectPoolFunctors::Nil<TYPE>>
int bdlcc::SharedObjectPool< TYPE, CREATOR, RESETTER >::numObjects (  )  const

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.


The documentation for this class was generated from the following file: