12 #ifndef DtThreadSafeBufferQueue_H_
13 #define DtThreadSafeBufferQueue_H_
15 #include <vlutil/vlMutex.h>
39 unsigned int initialBufferCount = 10 );
45 virtual inline void push(
const T* buff,
unsigned int size );
53 virtual inline std::auto_ptr< Buffer >
pop();
56 virtual inline void releaseBuffer( std::auto_ptr< Buffer > buff );
58 virtual inline size_t size()
const;
72 #define DtThreadSafeBufferQueue_Inl_
73 #include "vlThreadSafeBufferQueue.inl"
74 #undef DtThreadSafeBufferQueue_Inl_
virtual std::auto_ptr< Buffer > pop()
Pop the next buffer from the front of the queue Popper assumes ownership of popped buffer...
MAKRti::DtMutex myLock
Lock for critical section access.
Definition: vlThreadSafeBufferQueue.h:67
Very simple wrapper that provides thread-safe access to a basic queue of buffers. ...
Definition: vlThreadSafeBufferQueue.h:30
virtual void releaseBuffer(std::auto_ptr< Buffer > buff)
Return ownership of a buffer to the Queue for re-use.
std::deque< Buffer * > BufferQueue
Definition: vlThreadSafeBufferQueue.h:35
std::vector< T > Buffer
Definition: vlThreadSafeBufferQueue.h:34
virtual ~DtThreadSafeBufferQueue()
Dtor.
BufferQueue myFreeBuffers
Definition: vlThreadSafeBufferQueue.h:64
DtThreadSafeBufferQueue(unsigned int initialBufferSize=1000, unsigned int initialBufferCount=10)
Ctor.
BufferQueue myQueue
Data Members.
Definition: vlThreadSafeBufferQueue.h:63
virtual void push(const T *buff, unsigned int size)
Push a copy of a T[] of size elements onto the back of the queue.
virtual size_t size() const