rodecomp/Source/Network/Connection/PacketQueue.h
ragnarok-clanker da7e2c1249 Decompile 2 functions in Source/Network/Connection/Connection.cpp, Source/Network/Connection/PacketQueue.h
Batch #17036 by eAthena: 2 byte-identical, 0 confirmed by peer review.

- fn_20398 CConnection::Flush: byte-identical
- fn_20407 CConnection::SetBlock: byte-identical

Merged automatically: every function is byte-identical to the original.
2026-11-11 12:55:57 +00:00

43 lines
1 KiB
C++

#ifndef RAGNAROK_SOURCE_NETWORK_CONNECTION_PACKETQUEUE_H
#define RAGNAROK_SOURCE_NETWORK_CONNECTION_PACKETQUEUE_H
#include <vector>
class CPacketQueue {
public:
CPacketQueue();
~CPacketQueue();
void Init(unsigned bytes);
int GetSize() const;
void InsertData(int bytes, const void* source);
void Prepend(int bytes, const void* source);
bool GetData(int bytes, void* destination);
bool PeekData(int bytes, void* destination) const;
bool RemoveData(int bytes);
// INLINED
char* Data() const {
return this->m_data + this->m_read;
}
unsigned Size() const {
return static_cast<unsigned>(this->m_storage.size());
}
// INLINED
int Pending() const {
return this->m_write - this->m_read;
}
private:
/* 0000 */ char* m_data;
/* 0004 */ int m_read;
/* 0008 */ int m_write;
/* 000C */ std::vector<char> m_storage;
CPacketQueue(const CPacketQueue&) = delete;
CPacketQueue& operator=(const CPacketQueue&) = delete;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CPacketQueue) == 24);
#endif
#endif