📄 myqueue.h
字号:
//////////////////////////////////////////////////////////////////////
// MyQueue.h: interface for the CMyQueue class.
// 双向队列支持FIFO规则
//////////////////////////////////////////////////////////////////////
#ifndef _MYQUEUE_H_
#define _MYQUEUE_H_
#include "BasicDefine.h"
class CQueueNode
{
public:
CQueueNode(INT32 iSize);
~CQueueNode();
public:
UINT32 iNodeSize; //节点大小 (单位:字节)
void* nContent; //节点内容
CQueueNode* prevNode; //前个节点
CQueueNode* nextNode; //后个节点
};
class CMyQueue
{
public:
CMyQueue();
~CMyQueue();
public:
INT32 InitQueue(INT32 iMaxSum,INT32 iMaxSize); //m_iMaxSum = iMaxSum m_iNodeSum = iMaxSize
INT32 InsertNode(void* nContent,INT32 iSize); //入队
INT32 GetDelNode(void* nContent,INT32 iSize); //出队
INT32 InsertHead(void* nContent,INT32 iSize); //插入到头节点
INT32 GetUsedSum(); //return this->m_iCurrSum;
INT32 GetFreeSum(); //return (this->m_iMaxSum - this->m_iCurrSum);
INT32 RemoveAll(); //释放所有节点
INT32 SetNodeSize(INT32 iSize); //未实现
public:
CQueueNode* m_qHeader;
CQueueNode* m_qTailer;
public:
INT32 m_iMaxSum; //队列的最大节点数
INT32 m_iCurrSum; //队列当前的节点数
INT32 m_iNodeSize; //节点的最大申请空间(byte) 超过该大小则作截断处理
INT32 m_iMemUsed; //队列当前所用的内存大小(byte)
public:
pthread_mutex_t m_lUsedMutex;
};
#endif // _MYQUEUE_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -