diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2010-05-29 07:25:38 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2010-05-29 07:25:38 +0000 |
| commit | 72c06a258940696093f255fb1061beb58e1cdd0b (patch) | |
| tree | 36b9a7712eec2d4f07837eab9c38ef1c5af85319 /src/engine/e_ringbuffer.h | |
| parent | e56feb597bc743677633432f77513b02907fd169 (diff) | |
| download | zcatch-72c06a258940696093f255fb1061beb58e1cdd0b.tar.gz zcatch-72c06a258940696093f255fb1061beb58e1cdd0b.zip | |
copied refactor to trunk
Diffstat (limited to 'src/engine/e_ringbuffer.h')
| -rw-r--r-- | src/engine/e_ringbuffer.h | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/src/engine/e_ringbuffer.h b/src/engine/e_ringbuffer.h deleted file mode 100644 index b9f7219c..00000000 --- a/src/engine/e_ringbuffer.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef _RINGBUFFER_H -#define _RINGBUFFER_H - -typedef struct RINGBUFFER RINGBUFFER; - -class CRingBufferBase -{ - class CItem - { - public: - CItem *m_pPrev; - CItem *m_pNext; - int m_Free; - int m_Size; - }; - - CItem *m_pProduce; - CItem *m_pConsume; - - CItem *m_pFirst; - CItem *m_pLast; - - void *m_pMemory; - int m_Size; - int m_Flags; - - CItem *NextBlock(CItem *pItem); - CItem *PrevBlock(CItem *pItem); - CItem *MergeBack(CItem *pItem); -protected: - void *Allocate(int Size); - - void *Prev(void *pCurrent); - void *Next(void *pCurrent); - void *First(); - void *Last(); - - void Init(void *pMemory, int Size, int Flags); - int PopFirst(); -public: - enum - { - /* Will start to destroy items to try to fit the next one */ - FLAG_RECYCLE=1 - }; -}; - -template<typename T, int TSIZE, int TFLAGS=0> -class TStaticRingBuffer : public CRingBufferBase -{ - unsigned char m_aBuffer[TSIZE]; -public: - TStaticRingBuffer() { Init(); } - - void Init() { CRingBufferBase::Init(m_aBuffer, TSIZE, TFLAGS); } - - T *Allocate(int Size) { return (T*)CRingBufferBase::Allocate(Size); } - int PopFirst() { return CRingBufferBase::PopFirst(); } - - T *Prev(T *pCurrent) { return (T*)CRingBufferBase::Prev(pCurrent); } - T *Next(T *pCurrent) { return (T*)CRingBufferBase::Next(pCurrent); } - T *First() { return (T*)CRingBufferBase::First(); } - T *Last() { return (T*)CRingBufferBase::Last(); } -}; - -#endif |