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

📄 aimessagequeue.h

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 H
字号:
#ifndef _AIMESSAGEQUEUE_H_
#define _AIMESSAGEQUEUE_H_

#include <RingBuffer.h>


struct AI_MSG;

class AIMessageQueue
{
public:
	AIMessageQueue()
	{
		m_pAIMessageBuffer	= new util::RingBuffer;
		m_pAIMessageBuffer->InitBuffer( RINGBUFFER_SIZE );
	}
	~AIMessageQueue()
	{
		if( m_pAIMessageBuffer )
		{
			m_pAIMessageBuffer->ReleaseBuffer();
		}

		SAFE_DELETE( m_pAIMessageBuffer );			
	}

	inline VOID Clear()
	{
		m_pAIMessageBuffer->ResetBuffer();
	}

	inline DWORD GetOccupiedSize()
	{
		return m_pAIMessageBuffer->GetOccupiedSize();
	}

	inline VOID SendAIMessage( AI_MSG *pMsg, WORD wSize, DWORD dwDelay = 0 )
	{
		pMsg->wSize = wSize;
		pMsg->dwDeliveryTick = GetTickCount() + dwDelay;
		m_pAIMessageBuffer->Put( (BYTE*)pMsg, wSize );
	}

	// dwSize俊 荤捞令甫 掘绢郴绊 单捞磐 矫累 器牢磐甫 府畔茄促.
	inline BYTE* RecvAIMessage( WORD &wSize )
	{
		if( !m_pAIMessageBuffer->Peek( (BYTE*)&wSize, sizeof(WORD) ) )
		{
			return NULL;
		}

		return m_pAIMessageBuffer->GetFrontPtr();
	}

	inline VOID Completion( WORD wSize )
	{
		m_pAIMessageBuffer->Get( NULL, wSize ) ;
	}

private:
	enum { RINGBUFFER_SIZE = 500 };
	util::RingBuffer *			m_pAIMessageBuffer;
};





#endif

⌨️ 快捷键说明

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