aboutsummaryrefslogtreecommitdiff
path: root/zenstore/basicfile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zenstore/basicfile.cpp')
-rw-r--r--zenstore/basicfile.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/zenstore/basicfile.cpp b/zenstore/basicfile.cpp
index 126f2a8b3..0b92a8979 100644
--- a/zenstore/basicfile.cpp
+++ b/zenstore/basicfile.cpp
@@ -98,12 +98,18 @@ BasicFile::ReadAll()
void
BasicFile::StreamFile(std::function<void(const void* Data, uint64_t Size)>&& ChunkFun)
{
+ StreamByteRange(0, FileSize(), std::move(ChunkFun));
+}
+
+void
+BasicFile::StreamByteRange(uint64_t FileOffset, uint64_t Size, std::function<void(const void* Data, uint64_t Size)>&& 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)
{