📄 dataqueue.cpp
字号:
#include "stdafx.h"
#include "DataQueue.h"
#if 0
template <class _Tp>
CDataQueue<_Tp>::CDataQueue()
{
m_pHead = NULL;
m_pTail = NULL;
m_counst = 0;
m_counLimit = MAX_QUEUE_COUNST;
}
template <class _Tp>
CDataQueue<_Tp>::CDataQueue(int imax)
{
m_pHead = NULL;
m_pTail = NULL;
m_counst = 0;
m_counLimit = imax;
}
template <class _Tp>
CDataQueue<_Tp>::~CDataQueue()
{
QUEUE_NODE *ppNode;
QUEUE_NODE *delNode;
ppNode = m_pHead;
while (ppNode != NULL)
{
delNode = ppNode;
ppNode = ppNode->next;
delete delNode;
}
m_pHead = NULL;
m_pTail = NULL;
m_counst = 0;
}
template <class _Tp>
void CDataQueue<_Tp>::WriteDataToQueue(NodeType *snode)
{
QUEUE_NODE *node;
if(m_counst >= m_counLimit)
return;
node = new (QUEUE_NODE);
memcpy(&node->body, snode,sizeof(NodeType));
node->next = NULL;
if(m_pTail == NULL)
{
m_pHead = node;
m_pTail = node;
}
else
{
m_pTail->next = node;
m_pTail = node;
}
m_counst++;
}
template <class _Tp>
int CDataQueue<_Tp>::ReadDataFromQueue(NodeType *dnode)
{
QUEUE_NODE *node;
if(m_pHead == NULL)
return -1;
if(m_pHead == m_pTail)
{
memcpy(dnode, m_pHead->body, sizeof(NodeType));
delete m_pHead;
m_pHead = NULL;
m_pTail = NULL;
}else
{
memcpy(dnode, m_pHead->body, sizeof(NodeType));
node = m_pHead;
m_pHead = m_pHead->next;
delete node;
}
m_counst--;
return 0;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -