⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dequepool.h

📁 联通接收发送新程序
💻 H
字号:
/* Copyright(C) 2003 by XWTEC */
/*
  Name: DequePool.h           Version: 1.0.0
  Created by yshan            Date: 20030919
  Comment: deque pool class
  Modified:
*/

#if !defined _DEQUE_POOL_H
#define _DEQUE_POOL_H
	
	#include "mutex.h"	
	#include <deque>
		
	using namespace std;
	template<typename T,class ThreadModel=MultiThread> 
	class CDequePool:private ThreadModel //the template class for deque pool
	{
		private:
			std::deque<T> m_clDeque; //内部使用的队列,注意内型T必须有安全的拷贝构造函数

		public:
			CDequePool()
			{
			}
			virtual ~CDequePool()
			{
				FlushAll(); //队列析构时删除所有
			}

		public:
			//content:将数据放入池中
			//return :true成功
			bool PutData(const T &data) 
			{
				Lock();
				m_clDeque.push_front(data);
				Unlock();
				return true;
			}

			//content:从池中数据
			//return :true成功
			//       :false失败
			bool GetData(T &theData)
			{
				bool result=true;
				Lock();
				if(!m_clDeque.empty())
				{
					theData=m_clDeque.back();
					m_clDeque.pop_back();
				}
				else
				{
					result=false;
				}
				Unlock();
				return result;
			}

			//content:删除所有数据
			//return :无
			void FlushAll()
			{
				m_clDeque.clear();
			}
	};
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -