fix compression

This commit is contained in:
2025-02-26 15:09:23 +01:00
parent 68fcd514a3
commit 6a52b7fe2a
5 changed files with 25 additions and 31 deletions

View File

@@ -16,14 +16,7 @@ namespace zlib {
* \param buffer the data to compress
* \return the compressed data
*/
DataBuffer Compress(const DataBuffer& buffer);
/**
* \brief Reads the packet lenght and uncompress it
* \param buffer the data to uncompress
* \return the uncompressed data
*/
DataBuffer Decompress(DataBuffer& buffer);
DataBuffer Compress(const DataBuffer& buffer, std::size_t a_CompressionThreshold = 64);
/**
* \brief Uncompress some data

View File

@@ -1,6 +1,7 @@
#pragma once
#include <stdexcept>
#include <sp/extensions/Compress.h>
namespace sp {
namespace io {
@@ -15,8 +16,8 @@ template <typename IOTag, typename MessageDispatcher, typename MessageFactory>
void Stream<IOTag, MessageDispatcher, MessageFactory>::SendMessage(const MessageBase& a_Message) {
// TODO: process compress + encryption
DataBuffer data = a_Message.Write();
DataBuffer dataSize;
m_Interface.Write(dataSize << sp::VarInt{data.GetSize()} << data);
DataBuffer compressed = zlib::Compress(data);
m_Interface.Write(compressed);
}
template <typename IOTag, typename MessageDispatcher, typename MessageFactory>
@@ -60,6 +61,8 @@ void Stream<IOTag, MessageDispatcher, MessageFactory>::RecieveMessages() {
// TODO: process compress + encryption
buffer = zlib::Decompress(buffer, lenghtValue);
VarInt packetType;
buffer >> packetType;