From 6240dbc8aac714998e38b92850c3bff3d579f2ab Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Sun, 19 Sep 2021 23:30:03 +0200 Subject: Implemented BasicFile::StreamByteRange --- zenstore/basicfile.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'zenstore/basicfile.cpp') diff --git a/zenstore/basicfile.cpp b/zenstore/basicfile.cpp index 126f2a8b3..0b92a8979 100644 --- a/zenstore/basicfile.cpp +++ b/zenstore/basicfile.cpp @@ -97,13 +97,19 @@ BasicFile::ReadAll() void BasicFile::StreamFile(std::function&& ChunkFun) +{ + StreamByteRange(0, FileSize(), std::move(ChunkFun)); +} + +void +BasicFile::StreamByteRange(uint64_t FileOffset, uint64_t Size, std::function&& ChunkFun) { const uint64_t ChunkSize = 128 * 1024; IoBuffer ReadBuffer{ChunkSize}; void* BufferPtr = ReadBuffer.MutableData(); - uint64_t RemainBytes = FileSize(); - uint64_t CurrentOffset = 0; + uint64_t RemainBytes = Size; + uint64_t CurrentOffset = FileOffset; while (RemainBytes) { -- cgit v1.2.3