36 lines
688 B
C
36 lines
688 B
C
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include <Windows.h>
|
|||
|
|
#include <vector>
|
|||
|
|
using namespace std;
|
|||
|
|
|
|||
|
|
class ByteBuffer
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
ByteBuffer(unsigned int size = 1024);
|
|||
|
|
virtual ~ByteBuffer(void);
|
|||
|
|
|
|||
|
|
// debug function
|
|||
|
|
void dump();
|
|||
|
|
|
|||
|
|
// <20>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD>ĩβд<CEB2><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD>С)
|
|||
|
|
bool write(const void* data, unsigned int size);
|
|||
|
|
|
|||
|
|
// <20>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>С)
|
|||
|
|
bool read(void* data, unsigned int size);
|
|||
|
|
|
|||
|
|
// <20><>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı仺<C4B1><E4BBBA><EFBFBD><EFBFBD>С
|
|||
|
|
bool get(void* data, unsigned int size, unsigned int pos = 0);
|
|||
|
|
|
|||
|
|
// ȡ<>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С(<28><><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>ֽ<EFBFBD><D6BD><EFBFBD>)
|
|||
|
|
size_t size();
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
void prevWrite(unsigned int size);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
vector<byte> m_buffer;
|
|||
|
|
unsigned int m_curPos;
|
|||
|
|
unsigned int m_curSize;
|
|||
|
|
};
|