aimessagequeue.h

来自「奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码」· C头文件 代码 · 共 69 行

H
69
字号
#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 + =
减小字号Ctrl + -
显示快捷键?