📄 ringbuffer.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 + -