serialize id with VarInt
This commit is contained in:
@@ -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() {}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user