<pre name="code" class="cpp">/*
* @note :队列
* @author :Andy.Ro
* @email :Qwuloo@qq.com
* @date :2014-06
*
*/
#ifndef _XQUEUE_H_INCLUDE_
#define _XQUEUE_H_INCLUDE_
#include "../xNet/xNetDll.h"
//------------------------------------------------------------------------
// node_t<TYPE> 节点
//------------------------------------------------------------------------
template < class TYPE > class /*XNET_API*/ q_node_t
{
public:
inline TYPE get_data(void)
{
return this->data;
}
public:
TYPE data;
q_node_t<TYPE> * prev,*next;
};
//------------------------------------------------------------------------
// block_q_node_t 单(一)个内存块,由N个节点 sizeof(q_node_t<TYPE>) 构成
//------------------------------------------------------------------------
template < class TYPE > class /*XNET_API*/ block_q_node_t
{
public:
// @note: 返回块数据部分
inline q_node_t<TYPE>* get_data(void)
{
return (q_node_t<TYPE> *)((char *)this + sizeof(block_q_node_t));
}
// @note: 申请单(一)个内存块
// @param header <block_q_node_t*&> : 块头
// @param tail <block_q_node_t*&> : 块尾
static block_q_node_t * create(block_q_node_t*& header, block_q_node_t*& tail, u32_t N)
{
//
/// sizeof(block_q_node_t) + sizeof(q_node_t<TYPE>) * N
//
block_q_node_t * block = (bl
FIFO队列并发同步访问 C++ 实现 ~~~
最新推荐文章于 2023-12-31 12:56:41 发布