dataqueue.cpp
来自「VC6.0写的短信SP网关源代码, CpTest为测试的代码」· C++ 代码 · 共 93 行
CPP
93 行
#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 + =
减小字号Ctrl + -
显示快捷键?