serialize id with VarInt

This commit is contained in:
2025-02-26 12:23:26 +01:00
parent 03d799e064
commit 59aaf03421
3 changed files with 5 additions and 5 deletions

View File

@@ -20,7 +20,6 @@ class Stream {
IOInterface<IOTag> m_Interface; IOInterface<IOTag> m_Interface;
using MessageBase = typename MessageDispatcher::MessageBaseType; using MessageBase = typename MessageDispatcher::MessageBaseType;
using MsgIdType = typename MessageBase::MsgIdType;
public: public:
Stream() {} Stream() {}

View File

@@ -8,7 +8,8 @@ template <typename IOTag, typename MessageDispatcher, typename MessageFactory>
Stream<IOTag, MessageDispatcher, MessageFactory>::Stream(IOInterface<IOTag>&& a_Interface) : m_Interface(std::move(a_Interface)) {} Stream<IOTag, MessageDispatcher, MessageFactory>::Stream(IOInterface<IOTag>&& a_Interface) : m_Interface(std::move(a_Interface)) {}
template <typename IOTag, typename MessageDispatcher, typename MessageFactory> template <typename IOTag, typename MessageDispatcher, typename MessageFactory>
Stream<IOTag, MessageDispatcher, MessageFactory>::Stream(Stream<IOTag, MessageDispatcher, MessageFactory>&& a_Stream) : m_Dispatcher(std::move(a_Stream.m_Dispatcher)), m_Interface(std::move(a_Stream.m_Interface)) {} Stream<IOTag, MessageDispatcher, MessageFactory>::Stream(Stream<IOTag, MessageDispatcher, MessageFactory>&& a_Stream) :
m_Dispatcher(std::move(a_Stream.m_Dispatcher)), m_Interface(std::move(a_Stream.m_Interface)) {}
template <typename IOTag, typename MessageDispatcher, typename MessageFactory> template <typename IOTag, typename MessageDispatcher, typename MessageFactory>
void Stream<IOTag, MessageDispatcher, MessageFactory>::SendMessage(const MessageBase& a_Message) { void Stream<IOTag, MessageDispatcher, MessageFactory>::SendMessage(const MessageBase& a_Message) {
@@ -59,12 +60,12 @@ void Stream<IOTag, MessageDispatcher, MessageFactory>::RecieveMessages() {
// TODO: process compress + encryption // TODO: process compress + encryption
MsgIdType packetType; VarInt packetType;
buffer >> packetType; buffer >> packetType;
static const MessageFactory messageFactory; static const MessageFactory messageFactory;
std::unique_ptr<MessageBase> message = messageFactory.CreateMessage(packetType); std::unique_ptr<MessageBase> message = messageFactory.CreateMessage(packetType.GetValue());
assert(message != nullptr); assert(message != nullptr);

View File

@@ -117,7 +117,7 @@ template <typename TBase>
class MessageInterfaceWriteIdBase : public TBase { class MessageInterfaceWriteIdBase : public TBase {
public: public:
void Write(DataBuffer& buffer) const { void Write(DataBuffer& buffer) const {
this->WriteData(this->GetId(), buffer); buffer << VarInt{this->GetId()};
this->WriteImpl(buffer); this->WriteImpl(buffer);
} }