|
nidas v1.2.3
|
A pool of Samples. More...
#include <SamplePool.h>

Public Member Functions | |
| void | deletePoolInstance () |
| Implementation from SamplePoolInterface which deletes the instance for this particular SamplePoolInterface subclass. | |
| SampleType * | getSample (unsigned int len) |
| Get a sample of at least len elements from the pool. | |
| void | putSample (const SampleType *) |
| Return a sample to the pool. | |
| int | getNSamplesAlloc () const |
| int | getNSamplesOut () const |
| int | getNSmallSamplesIn () const |
| int | getNMediumSamplesIn () const |
| int | getNLargeSamplesIn () const |
Static Public Member Functions | |
| static SamplePool * | getInstance () |
| Get a pointer to the singleton instance. | |
| static void | deleteInstance () |
| Singleton cleanup on program exit. | |
Public Attributes | |
| int | _nsmall |
| int | _nmedium |
| int | _nlarge |
| int | _nsamplesOut |
| int | _nsamplesAlloc |
Private Member Functions | |
| SamplePool () | |
| ~SamplePool () | |
| SampleType * | getSample (SampleType **vec, int *veclen, unsigned int len) |
| void | putSample (const SampleType *, SampleType ***vecp, int *veclen, int *nalloc) |
| SamplePool (const SamplePool &) | |
| No copying. | |
| SamplePool & | operator= (const SamplePool &) |
| No assignment. | |
Private Attributes | |
| SampleType ** | _smallSamples |
| SampleType ** | _mediumSamples |
| SampleType ** | _largeSamples |
| int | _smallSize |
| int | _mediumSize |
| int | _largeSize |
| nidas::util::Mutex | _poolLock |
Static Private Attributes | |
| static SamplePool * | _instance = 0 |
| static nidas::util::Mutex | _instanceLock = nidas::util::Mutex() |
| static const unsigned int | SMALL_SAMPLE_MAXSIZE = 64 |
| maximum number of elements in a small sample | |
| static const unsigned int | MEDIUM_SAMPLE_MAXSIZE = 512 |
| maximum number of elements in a medium sized sample | |
A pool of Samples.
Actually three pools, containing samples segregated by size. A SamplePool can used as a singleton, and accessed from anywhere, via the getInstance() static member function.
|
private |
References nidas::core::SamplePool< SampleType >::_largeSamples, nidas::core::SamplePool< SampleType >::_largeSize, nidas::core::SamplePool< SampleType >::_mediumSamples, nidas::core::SamplePool< SampleType >::_mediumSize, nidas::core::SamplePool< SampleType >::_smallSamples, nidas::core::SamplePool< SampleType >::_smallSize, DLOG, nidas::core::SamplePool< SampleType >::getSample(), nidas::core::SamplePool< SampleType >::MEDIUM_SAMPLE_MAXSIZE, and nidas::core::SamplePool< SampleType >::SMALL_SAMPLE_MAXSIZE.
|
private |
References nidas::core::SamplePools::getInstance(), and nidas::core::getSample().
|
private |
No copying.
|
static |
Singleton cleanup on program exit.
References nidas::core::getSample().
Referenced by nidas::core::SamplePool< SampleType >::deletePoolInstance().
|
inlinevirtual |
Implementation from SamplePoolInterface which deletes the instance for this particular SamplePoolInterface subclass.
Implements nidas::core::SamplePoolInterface.
References nidas::core::SamplePool< SampleType >::deleteInstance().
|
static |
Get a pointer to the singleton instance.
References nidas::core::SamplePools::getInstance(), and nidas::core::getSample().
|
inlinevirtual |
Implements nidas::core::SamplePoolInterface.
References nidas::core::SamplePool< SampleType >::_nlarge.
|
inlinevirtual |
Implements nidas::core::SamplePoolInterface.
References nidas::core::SamplePool< SampleType >::_nmedium.
|
inlinevirtual |
Implements nidas::core::SamplePoolInterface.
References nidas::core::SamplePool< SampleType >::_nsamplesAlloc.
|
inlinevirtual |
Implements nidas::core::SamplePoolInterface.
References nidas::core::SamplePool< SampleType >::_nsamplesOut.
|
inlinevirtual |
Implements nidas::core::SamplePoolInterface.
References nidas::core::SamplePool< SampleType >::_nsmall.
|
private |
| SampleType * nidas::core::SamplePool< SampleType >::getSample | ( | unsigned int | len | ) |
Get a sample of at least len elements from the pool.
References nidas::core::getSample(), and len.
Referenced by nidas::core::SamplePool< SampleType >::SamplePool().
|
private |
No assignment.
| void nidas::core::SamplePool< SampleType >::putSample | ( | const SampleType * | sample | ) |
Return a sample to the pool.
References DLOG, nidas::core::getSample(), and len.
|
private |
References DLOG, and nidas::core::getSample().
|
staticprivate |
|
staticprivate |
|
private |
Referenced by nidas::core::SamplePool< SampleType >::SamplePool().
|
private |
Referenced by nidas::core::SamplePool< SampleType >::SamplePool().
|
private |
Referenced by nidas::core::SamplePool< SampleType >::SamplePool().
|
private |
Referenced by nidas::core::SamplePool< SampleType >::SamplePool().
| int nidas::core::SamplePool< SampleType >::_nlarge |
Referenced by nidas::core::SamplePool< SampleType >::getNLargeSamplesIn().
| int nidas::core::SamplePool< SampleType >::_nmedium |
Referenced by nidas::core::SamplePool< SampleType >::getNMediumSamplesIn().
| int nidas::core::SamplePool< SampleType >::_nsamplesAlloc |
Referenced by nidas::core::SamplePool< SampleType >::getNSamplesAlloc().
| int nidas::core::SamplePool< SampleType >::_nsamplesOut |
Referenced by nidas::core::SamplePool< SampleType >::getNSamplesOut().
| int nidas::core::SamplePool< SampleType >::_nsmall |
Referenced by nidas::core::SamplePool< SampleType >::getNSmallSamplesIn().
|
private |
|
private |
Referenced by nidas::core::SamplePool< SampleType >::SamplePool().
|
private |
Referenced by nidas::core::SamplePool< SampleType >::SamplePool().
|
staticprivate |
maximum number of elements in a medium sized sample
Referenced by nidas::core::SamplePool< SampleType >::SamplePool().
|
staticprivate |
maximum number of elements in a small sample
Referenced by nidas::core::SamplePool< SampleType >::SamplePool().