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().