cyclebuf.h

来自「经常用到的 socketAPI」· C头文件 代码 · 共 43 行

H
43
字号
//////////////////////////////////////////////////////////////////////
// CycleBuf.h
// 循环缓冲区,每次输入的长度必须小于m_nCapacity成员
// 否则当m_Head==m_Tail表示空缓冲
//////////////////////////////////////////////////////////////////////
#if !defined(CCYCLEBUF_H__)
#define CCYCLEBUF_H__
#include <iosfwd>

namespace mylib{

class CCycleBuf  
{
public:
	CCycleBuf(int Capacity=16);
	CCycleBuf(const CCycleBuf &cyc);
	virtual ~CCycleBuf();
	CCycleBuf& operator=(const CCycleBuf &cyc);

private:
    int m_nCapacity;
    int m_nHead;
	int m_nTail;
    char *m_buf;
public:
	int GetCapacity() const;
	int GetUsedLen()  const;
	int GetFreeLen()  const;
	
	void Clear();
	bool Input(const char *BufIn,int len);
	bool Output(char *BufOut,int len);
	bool Resize(int len);

    friend std::ostream& operator << (std::ostream& os, const CCycleBuf& cyc);

private:
	void Swap(CCycleBuf &cyc);
};

}//end of mylib
#endif 

⌨️ 快捷键说明

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