aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/compress.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zencore/compress.cpp')
-rw-r--r--src/zencore/compress.cpp30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/zencore/compress.cpp b/src/zencore/compress.cpp
index c41bdac42..a8e8a79f4 100644
--- a/src/zencore/compress.cpp
+++ b/src/zencore/compress.cpp
@@ -193,15 +193,7 @@ class NoneEncoder final : public BaseEncoder
public:
[[nodiscard]] CompositeBuffer Compress(const CompositeBuffer& RawData, uint64_t /* BlockSize */) const final
{
- BufferHeader Header;
- Header.Method = CompressionMethod::None;
- Header.BlockCount = 1;
- Header.TotalRawSize = RawData.GetSize();
- Header.TotalCompressedSize = Header.TotalRawSize + sizeof(BufferHeader);
- Header.RawHash = BLAKE3::HashBuffer(RawData);
-
- UniqueBuffer HeaderData = UniqueBuffer::Alloc(sizeof(BufferHeader));
- Header.Write(HeaderData);
+ UniqueBuffer HeaderData = CompressedBuffer::CreateHeaderForNoneEncoder(RawData.GetSize(), BLAKE3::HashBuffer(RawData));
return CompositeBuffer(HeaderData.MoveToShared(), RawData.MakeOwned());
}
};
@@ -1301,6 +1293,26 @@ CompressedBuffer::ValidateCompressedHeader(const IoBuffer& CompressedData, IoHas
return detail::BufferHeader::IsValid(SharedBuffer(CompressedData), OutRawHash, OutRawSize);
}
+size_t
+CompressedBuffer::GetHeaderSizeForNoneEncoder()
+{
+ return sizeof(detail::BufferHeader);
+}
+
+UniqueBuffer
+CompressedBuffer::CreateHeaderForNoneEncoder(uint64_t RawSize, const BLAKE3& RawHash)
+{
+ detail::BufferHeader Header;
+ Header.Method = detail::CompressionMethod::None;
+ Header.BlockCount = 1;
+ Header.TotalRawSize = RawSize;
+ Header.TotalCompressedSize = Header.TotalRawSize + sizeof(detail::BufferHeader);
+ Header.RawHash = RawHash;
+ UniqueBuffer HeaderData = UniqueBuffer::Alloc(sizeof(detail::BufferHeader));
+ Header.Write(HeaderData);
+ return HeaderData;
+}
+
uint64_t
CompressedBuffer::DecodeRawSize() const
{