MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vlThreadSafeBufferQueue.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2005 MaK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: vlThreadSafeBufferQueue.h,v $ $Revision: 1.3 $ $State: Exp $
7 *******************************************************************************/
8 
11 
12 #ifndef DtThreadSafeBufferQueue_H_
13 #define DtThreadSafeBufferQueue_H_
14 
15 #include <vlutil/vlMutex.h>
16 #include <deque>
17 #include <memory>
18 
19 
30 template< class T >
32 {
33 public:
34 
35  typedef std::vector<T> Buffer;
36  typedef std::deque<Buffer*> BufferQueue;
37 
39  DtThreadSafeBufferQueue( unsigned int initialBufferSize = 1000,
40  unsigned int initialBufferCount = 10 );
41 
43  virtual ~DtThreadSafeBufferQueue();
44 
46  virtual inline void push( const T* buff, unsigned int size );
47 
49  virtual inline void push( Buffer buff );
50 
54  virtual inline DtUniquePtr< Buffer > pop();
55 
57  virtual inline void releaseBuffer(DtUniquePtr< Buffer > buff );
58 
59  virtual inline size_t size() const;
60 
61 protected:
62 
66 
68  mutable MAKRti::DtMutex myLock;
69 
70 };
71 
73 #define DtThreadSafeBufferQueue_Inl_
74 #include "vlThreadSafeBufferQueue.inl"
75 #undef DtThreadSafeBufferQueue_Inl_
76 
77 #endif
78 
79 
80 
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.

Document ID: Generated on Wed Jul 8 16:20:32 EDT 2026 from SVN revision 291616
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)