12 #ifndef DtThreadSafeBufferQueue_H_
13 #define DtThreadSafeBufferQueue_H_
15 #include <vlutil/vlMutex.h>
40 unsigned int initialBufferCount = 10 );
46 virtual inline void push(
const T* buff,
unsigned int size );
54 virtual inline DtUniquePtr< Buffer >
pop();
57 virtual inline void releaseBuffer(DtUniquePtr< Buffer > buff );
59 virtual inline size_t size()
const;
73 #define DtThreadSafeBufferQueue_Inl_
74 #include "vlThreadSafeBufferQueue.inl"
75 #undef DtThreadSafeBufferQueue_Inl_
MAKRti::DtMutex myLock
Lock for critical section access.
Definition: vlThreadSafeBufferQueue.h:68
Very simple wrapper that provides thread-safe access to a basic queue of buffers. ...
Definition: vlThreadSafeBufferQueue.h:31
std::deque< Buffer * > BufferQueue
Definition: vlThreadSafeBufferQueue.h:36
std::vector< T > Buffer
Definition: vlThreadSafeBufferQueue.h:35
virtual ~DtThreadSafeBufferQueue()
Dtor.
BufferQueue myFreeBuffers
Definition: vlThreadSafeBufferQueue.h:65
DtThreadSafeBufferQueue(unsigned int initialBufferSize=1000, unsigned int initialBufferCount=10)
Ctor.
BufferQueue myQueue
Data Members.
Definition: vlThreadSafeBufferQueue.h:64
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
virtual DtUniquePtr< Buffer > pop()
Pop the next buffer from the front of the queue Popper assumes ownership of popped buffer...
virtual void releaseBuffer(DtUniquePtr< Buffer > buff)
Return ownership of a buffer to the Queue for re-use.