#pragma once #include #include #include template 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() {} };