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

📄 ringbuffer.h

📁 奇迹世界公用文件源代码,研究网络游戏的朋友可以研究下
💻 H
字号:
// RingBuffer.h: interface for the RingBuffer class.
//
//////////////////////////////////////////////////////////////////////

#ifndef __RINGBUFFER_H__
#define __RINGBUFFER_H__

#pragma once

//=======================================================================================================================
/// 傅滚欺 备泅 努贰胶
/**
	@author
			Kim Min Wook < taiyo@webzen.co.kr >	
	@since
			2004. 8. 2
	@remarks
			- 傅滚欺俊 单捞磐甫 put, get窍绰 utility library
			- Put( BYTE * pData, DWORD dwSize )	 : 泅犁 困摹狼 滚欺(m_pRear)俊 单捞磐甫 dwSize父怒 火涝
			- Get( BYTE * pData, DWORD dwSize )	 : 泅犁 困摹狼 滚欺(m_pRear)俊辑 单捞磐甫 dwSize父怒 眠免
			- Peek( BYTE * pData, DWORD dwSize ) : 泅犁 困摹狼 滚欺(m_pRear)俊辑 单捞磐甫 dwSize父怒 眠免( m_pRear俊 +dwSize窍瘤 臼澜 )
	@todo
			- template栏肺 蜡楷窍霸 且 鞘夸 乐澜(^O^)/
*/
//=======================================================================================================================

namespace util
{


class RingBuffer  
{
public:
	RingBuffer();
	virtual ~RingBuffer();

	VOID			InitBuffer( DWORD dwBufferSize );
	VOID			ReleaseBuffer();
	VOID			ResetBuffer();
 
	BOOL			Put( BYTE * pData, DWORD dwSize );
	BOOL			Get( BYTE * pData, DWORD dwSize );
	BOOL			Peek( BYTE * pData, DWORD dwSize );

	inline DWORD	GetAvailableSize() { return m_dwAvailableSize;	}
	inline DWORD	GetOccupiedSize() { return m_dwMaxBufferSize - m_dwAvailableSize;	}

	inline BYTE *	GetFrontPtr()  { return m_pFront;	}

private:
	BYTE			* m_pBuffer;

	BYTE			* m_pHead;
	BYTE			* m_pTail;

	BYTE			* m_pFront;
	BYTE			* m_pRear;

	DWORD			m_dwMaxBufferSize;
	DWORD			m_dwAvailableSize;
	DWORD			m_dwExtraBufferSize;	// Tail 第俊 嘿绰 咯盒狼 滚欺荤捞令
};

}

#endif // __RINGBUFFER_H__

⌨️ 快捷键说明

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