Files
Sun1602/Server/Shop/ClientStub/WBANetwork/util/Stream.h
T
2022-10-26 12:25:11 +08:00

49 lines
984 B
C++

#ifndef __WBANetwork_Stream_H
#define __WBANetwork_Stream_H
#define STREAM_DEFAULT_SIZE 256
namespace WBANetwork
{
class Stream
{
public:
Stream(int size = STREAM_DEFAULT_SIZE);
Stream(Stream& stream);
Stream(PBYTE buffer, int len);
~Stream();
unsigned long GetDataSize() { return m_dataSize; }
unsigned long GetBufferSize() { return m_bufferSize; }
LPBYTE GetBuffer() { return m_buffer; }
void Clear(int resize = 0);
bool Write(void* source, int size);
bool Read(void* dest, int size);
template<class _T> Stream& operator << (_T arg)
{
Write(&arg, sizeof(_T));
return *this;
}
template<class _T> Stream& operator >> (_T& arg)
{
Read(&arg, sizeof(_T));
return *this;
}
Stream& operator = (Stream& stream);
Stream& operator << (Stream& stream);
private:
BYTE m_defaultBuffer[STREAM_DEFAULT_SIZE];
LPBYTE m_buffer, m_readPos, m_endPos;
unsigned long m_dataSize, m_bufferSize;
};
}
#endif