Batch #1058 by ragnarok-clanker: no function's compiled code changes; checked with 28 compiled unit(s), including every includer of Source/Network/Connection/ConnectionBuffer.h, Source/Network/Http/CURLMgr.h, Source/Network/Packets/PacketLengths.h.
39 lines
1,013 B
C++
39 lines
1,013 B
C++
#ifndef RAGNAROK_SOURCE_NETWORK_CONNECTION_CONNECTIONBUFFER_H
|
|
#define RAGNAROK_SOURCE_NETWORK_CONNECTION_CONNECTIONBUFFER_H
|
|
|
|
#include <vector>
|
|
|
|
class ConnectionBuffer {
|
|
public:
|
|
ConnectionBuffer();
|
|
~ConnectionBuffer();
|
|
void Reset(unsigned bytes);
|
|
int Available() const;
|
|
void Append(int bytes, const void* source);
|
|
void Prepend(int bytes, const void* source);
|
|
bool Read(int bytes, void* destination);
|
|
bool Peek(int bytes, void* destination) const;
|
|
bool Consume(int bytes);
|
|
|
|
// INLINED
|
|
char* Data() const {
|
|
return this->m_data + this->m_read;
|
|
}
|
|
unsigned Size() const {
|
|
return static_cast<unsigned>(this->m_storage.size());
|
|
}
|
|
|
|
private:
|
|
/* 0000 */ char* m_data;
|
|
/* 0004 */ int m_read;
|
|
/* 0008 */ int m_write;
|
|
/* 000C */ std::vector<char> m_storage;
|
|
ConnectionBuffer(const ConnectionBuffer&) = delete;
|
|
ConnectionBuffer& operator=(const ConnectionBuffer&) = delete;
|
|
};
|
|
|
|
#if defined(_WIN32) && !defined(_WIN64)
|
|
static_assert(sizeof(ConnectionBuffer) == 24);
|
|
#endif
|
|
|
|
#endif
|