27 template <
class pType>
38 mHead(0), mNbItem(0), mArraySize(pSize), mArray(pData) { }
42 mArray[(mHead +
mNbItem) % mArraySize] = pData;
43 if(mNbItem == mArraySize) {
44 mHead = (mHead + 1) % mArraySize;
53 if(pCount > mNbItem) {
57 mHead = (mHead + pCount) % mArraySize;
92 return (mNbItem == 0);
97 return mArray[(mHead + pIndex) % mArraySize];
103 mHead = (mHead + mArraySize - 1) % mArraySize;
104 mArray[
mHead] = pData;
105 if(mNbItem != mArraySize) {
112 if(pCount > mNbItem) {
119 template <
class pType>
133 template <
class pType,
int pSize>
MR_FastFifo(int pSize)
Definition: FastFifo.h:125
int mNbItem
Definition: FastFifo.h:32
int Used() const
Definition: FastFifo.h:70
void RemoveTail(int pCount=1)
Definition: FastFifo.h:110
MR_FastFifoBase(int pSize, pType *pData)
Definition: FastFifo.h:37
void AddHead(pType pData)
Definition: FastFifo.h:101
MR_FixedFastFifo()
Definition: FastFifo.h:142
BOOL IsEmpty() const
Definition: FastFifo.h:90
void Clean()
Definition: FastFifo.h:65
void Add(pType pData)
Definition: FastFifo.h:40
~MR_FastFifo()
Definition: FastFifo.h:127
void Remove(int pCount=1)
Definition: FastFifo.h:51
int mArraySize
Definition: FastFifo.h:33
const pType operator[](int pIndex) const
Definition: FastFifo.h:95
pType * mArray
Definition: FastFifo.h:34
pType GetHead()
Definition: FastFifo.h:60
int Full() const
Definition: FastFifo.h:80
Definition: FastFifo.h:28
Definition: FastFifo.h:120
Definition: FastFifo.h:134
BOOL CanAdd(int pCount=1) const
Definition: FastFifo.h:85
int TotalSize() const
Definition: FastFifo.h:75
int mHead
Definition: FastFifo.h:31