From d501c0181d5602479e27d540b36842505dc32da4 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Tue, 4 Mar 2025 10:59:18 +0100 Subject: [PATCH] fix encapsulate/decapsulated --- include/sp/io/IOInterfaceImpl.inl | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/include/sp/io/IOInterfaceImpl.inl b/include/sp/io/IOInterfaceImpl.inl index 5aabee2..12e153b 100644 --- a/include/sp/io/IOInterfaceImpl.inl +++ b/include/sp/io/IOInterfaceImpl.inl @@ -48,11 +48,12 @@ Stream::Stream( template void Stream::SendMessage(const MessageBase& a_Message) { DataBuffer data = a_Message.Write(); - DataBuffer encapsulated = std::apply([&data](const auto&... a_Options) { - return Encapsulate(data, a_Options...); + TupleForEach([&data](const auto&... a_Options) { + data = Encapsulate(data, a_Options...); }, m_Options); DataBuffer finalData; - finalData << VarInt{encapsulated.GetSize()} << encapsulated; + finalData.Reserve(data.GetSize() + sizeof(VarInt::MAX_VALUE)); + finalData << VarInt{data.GetSize()} << data; m_Interface.Write(finalData); } @@ -93,8 +94,8 @@ void Stream::RecieveMessa DataBuffer buffer; buffer = m_Interface.Read(lenghtValue); - buffer = std::apply([&buffer, lenghtValue](const auto&... a_Options) { - return Decapsulate(buffer, a_Options...); + TupleForEach([&buffer, lenghtValue](const auto&... a_Options) { + buffer = Decapsulate(buffer, a_Options...); }, m_Options); VarInt packetType;