aboutsummaryrefslogtreecommitdiff
path: root/src/zenremotestore/projectstore/fileremoteprojectstore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenremotestore/projectstore/fileremoteprojectstore.cpp')
-rw-r--r--src/zenremotestore/projectstore/fileremoteprojectstore.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/zenremotestore/projectstore/fileremoteprojectstore.cpp b/src/zenremotestore/projectstore/fileremoteprojectstore.cpp
index 3a67d3842..ec7fb7bbc 100644
--- a/src/zenremotestore/projectstore/fileremoteprojectstore.cpp
+++ b/src/zenremotestore/projectstore/fileremoteprojectstore.cpp
@@ -217,7 +217,18 @@ public:
return Result;
}
- virtual LoadAttachmentResult LoadAttachment(const IoHash& RawHash) override
+ virtual GetBlockDescriptionsResult GetBlockDescriptions(std::span<const IoHash> BlockHashes) override
+ {
+ ZEN_UNUSED(BlockHashes);
+ return GetBlockDescriptionsResult{Result{.ErrorCode = int(HttpResponseCode::NotFound)}};
+ }
+
+ virtual AttachmentExistsInCacheResult AttachmentExistsInCache(std::span<const IoHash> RawHashes) override
+ {
+ return AttachmentExistsInCacheResult{Result{.ErrorCode = 0}, std::vector<bool>(RawHashes.size(), false)};
+ }
+
+ virtual LoadAttachmentResult LoadAttachment(const IoHash& RawHash, const AttachmentRange& Range) override
{
Stopwatch Timer;
LoadAttachmentResult Result;
@@ -232,7 +243,14 @@ public:
{
BasicFile ChunkFile;
ChunkFile.Open(ChunkPath, BasicFile::Mode::kRead);
- Result.Bytes = ChunkFile.ReadAll();
+ if (Range)
+ {
+ Result.Bytes = ChunkFile.ReadRange(Range.Offset, Range.Bytes);
+ }
+ else
+ {
+ Result.Bytes = ChunkFile.ReadAll();
+ }
}
AddStats(0, Result.Bytes.GetSize(), Timer.GetElapsedTimeUs() * 1000);
Result.ElapsedSeconds = Timer.GetElapsedTimeMs() / 1000.0;
@@ -245,7 +263,7 @@ public:
LoadAttachmentsResult Result;
for (const IoHash& Hash : RawHashes)
{
- LoadAttachmentResult ChunkResult = LoadAttachment(Hash);
+ LoadAttachmentResult ChunkResult = LoadAttachment(Hash, {});
if (ChunkResult.ErrorCode)
{
ChunkResult.ElapsedSeconds = Timer.GetElapsedTimeMs() / 1000.0;