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

📄 querypoolfactorydefine.h

📁 奇迹世界data 服务器代码,研究游戏的朋友有帮助
💻 H
字号:
#ifndef __QUERY_POOL_FACTORY_DEFINE_H__
#define __QUERY_POOL_FACTORY_DEFINE_H__




#define BEGIN_INITPOOL()							VOID	Init() \
													{
#define I_POOL_ENTRY( classType, bsize, esize )			m_##classType##Pool.Initialize( bsize, esize );
#define END_INITPOOL()								}

#define BEGIN_RELEAESPOOL()							VOID	Release() \
													{
#define R_POOL_ENTITY( classType )						m_##classType##Pool.Release();
#define END_RELEAESPOOL()							}

#define IMPLEMENT_POOL_ENTITY( classType )			public : classType * Alloc##classType() \
													{ \
													return m_##classType##Pool.Alloc(); \
													} \
													VOID Free##classType( classType * pObj ) \
													{ \
													m_##classType##Pool.Free( pObj ); \
													} \
													private:	\
													SafeMemoryPoolFactory<classType> m_##classType##Pool;


#define QUERYALLOC( classType )						QueryPoolFactory::Instance()->Alloc##classType##()
#define QUERYFREE( classType, classObj )			QueryPoolFactory::Instance()->Free##classType##( classObj )







template<class Type>
class QUERY_POOL
{
public:
	enum { eDEFUALT_POOL_SIZE = 1000, };
	QUERY_POOL( int size = eDEFUALT_POOL_SIZE )
	{
		m_pool.Initialize( size );
	}
	~QUERY_POOL()
	{
		m_pool.Release();
	}
	Type * Alloc()
	{
		return m_pool.Alloc();
	}
	VOID Free( Type * pType )
	{
		m_pool.Free( pType );
	}
private:
	util::CMemoryPoolFactory<Type> m_pool;
};

#define _DECLARE_QUERY_POOL( CLASSNAME )			\
	private:										\
	static QUERY_POOL<CLASSNAME>		m_Pool;		\
	public:											\
	static CLASSNAME * ALLOC()						\
	{												\
		return m_Pool.Alloc();						\
	}												\
	static VOID FREE( CLASSNAME * pObject )			\
	{												\
		m_Pool.Free(pObject);						\
	}
#define _IMPL_QUERY_POOL( CLASSNAME )				\
	QUERY_POOL<CLASSNAME> CLASSNAME::m_Pool;







#endif // __QUERY_POOL_FACTORY_DEFINE_H__

⌨️ 快捷键说明

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