MAK RTIspy API Documentation for HLA Evolved
 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 
18 
29 template< class T >
31 {
32 public:
33 
34  typedef std::vector<T> Buffer;
35  typedef std::deque<Buffer*> BufferQueue;
36 
38  DtThreadSafeBufferQueue( unsigned int initialBufferSize = 1000,
39  unsigned int initialBufferCount = 10 );
40 
42  virtual ~DtThreadSafeBufferQueue();
43 
45  virtual inline void push( const T* buff, unsigned int size );
46 
48  virtual inline void push( Buffer buff );
49 
53  virtual inline std::auto_ptr< Buffer > pop();
54 
56  virtual inline void releaseBuffer( std::auto_ptr< Buffer > buff );
57 
58  virtual inline size_t size() const;
59 
60 protected:
61 
65 
67  mutable MAKRti::DtMutex myLock;
68 
69 };
70 
72 #define DtThreadSafeBufferQueue_Inl_
73 #include "vlThreadSafeBufferQueue.inl"
74 #undef DtThreadSafeBufferQueue_Inl_
75 
76 #endif
77 
78 
79 
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

Document ID: Generated on Mon Sep 7 15:40:32 EDT 2020 from SVN revision 217499
Copyright © 2005-2020 MAK Technologies Inc. All Rights Reserved (www.mak.com)