aboutsummaryrefslogtreecommitdiff
path: root/src/zenutil/filebuildstorage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenutil/filebuildstorage.cpp')
-rw-r--r--src/zenutil/filebuildstorage.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/zenutil/filebuildstorage.cpp b/src/zenutil/filebuildstorage.cpp
index 78ebcdd55..a4bb759e7 100644
--- a/src/zenutil/filebuildstorage.cpp
+++ b/src/zenutil/filebuildstorage.cpp
@@ -336,7 +336,8 @@ public:
const std::filesystem::path BlockPath = GetBlobPayloadPath(RawHash);
if (std::filesystem::is_regular_file(BlockPath))
{
- IoBuffer Payload = ReadFile(BlockPath).Flatten();
+ BasicFile File(BlockPath, BasicFile::Mode::kRead);
+ IoBuffer Payload = File.ReadAll();
ZEN_ASSERT_SLOW(ValidateCompressedBuffer(RawHash, CompositeBuffer(SharedBuffer(Payload))));
m_Stats.TotalBytesRead += Payload.GetSize();
Payload.SetContentType(ZenContentType::kCompressedBinary);
@@ -365,13 +366,13 @@ public:
struct WorkloadData
{
std::atomic<uint64_t> BytesRemaining;
- IoBuffer BlobFile;
+ BasicFile BlobFile;
std::function<void(uint64_t Offset, const IoBuffer& Chunk, uint64_t BytesRemaining)> Receiver;
};
std::shared_ptr<WorkloadData> Workload(std::make_shared<WorkloadData>());
- Workload->BlobFile = IoBufferBuilder::MakeFromFile(BlockPath);
- const uint64_t BlobSize = Workload->BlobFile.GetSize();
+ Workload->BlobFile.Open(BlockPath, BasicFile::Mode::kRead);
+ const uint64_t BlobSize = Workload->BlobFile.FileSize();
Workload->Receiver = std::move(Receiver);
Workload->BytesRemaining = BlobSize;
@@ -383,7 +384,8 @@ public:
uint64_t Size = Min(ChunkSize, BlobSize - Offset);
WorkItems.push_back([this, BlockPath, Workload, Offset, Size]() {
SimulateLatency(0, 0);
- IoBuffer PartPayload(Workload->BlobFile, Offset, Size);
+ IoBuffer PartPayload(Size);
+ Workload->BlobFile.Read(PartPayload.GetMutableView().GetData(), Size, Offset);
m_Stats.TotalBytesRead += PartPayload.GetSize();
uint64_t ByteRemaning = Workload->BytesRemaining.fetch_sub(Size);
Workload->Receiver(Offset, PartPayload, ByteRemaning);