eis/inc/zlib/MemQueue.h

44 lines
839 B
C++

#pragma once
#include <glob/GlobMem.h>
#include <map>
#include <memory>
template <typename T> class MemQueue {
private:
long *m_pSize;
long *m_pMaxSize;
T *m_pHead;
T *m_pTail;
T *m_pPtr;
public:
MemQueue(std::string tableNmae, int maxSize) {
if (maxSize <= 0) {
maxSize = 1;
}
char *ptr = (char *)GlobMem::GetInstancePtr()->GetTablePtr(tableNmae);
if (ptr == nullptr) {
m_pPtr = nullptr;
m_pSize = 0;
} else {
m_pSize = (long *)ptr;
m_pHead = (T *)(ptr + sizeof(long));
m_pTail = dynamic_cast < if ((*m_pSize) > maxSize) {
(*m_pSize) = maxSize;
}
else if ((*m_pSize) < 0) {
(*m_pSize) = 0;
}
}
m_pPtr = (T *)(ptr + sizeof(long));
}
~MemQueue();
T *operator()() { return m_pPtr; }
void push() {}
void pop() {}
};