summaryrefslogtreecommitdiff
path: root/src/buildtool/common/artifact_blob.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2025-02-25 11:00:42 +0100
committerMaksim Denisov <denisov.maksim@huawei.com>2025-02-27 09:03:30 +0100
commit9a987188a38cc18f6a485bd5def16aded10fe1f6 (patch)
tree24dff0755833c14d9e196e6c48937fa45c3d5de4 /src/buildtool/common/artifact_blob.cpp
parent0570178dbfd3e90f1532421dab91b510e6c42937 (diff)
downloadjustbuild-9a987188a38cc18f6a485bd5def16aded10fe1f6.tar.gz
ArtifactBlob: Support incremental reading
Diffstat (limited to 'src/buildtool/common/artifact_blob.cpp')
-rw-r--r--src/buildtool/common/artifact_blob.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/buildtool/common/artifact_blob.cpp b/src/buildtool/common/artifact_blob.cpp
index 894d6d91..3b199e5e 100644
--- a/src/buildtool/common/artifact_blob.cpp
+++ b/src/buildtool/common/artifact_blob.cpp
@@ -21,6 +21,15 @@ auto ArtifactBlob::ReadContent() const noexcept
return content_;
}
+auto ArtifactBlob::ReadIncrementally(std::size_t chunk_size) const& noexcept
+ -> expected<IncrementalReader, std::string> {
+ if (content_ == nullptr) {
+ return unexpected<std::string>{
+ "ArtifactBlob::ReadIncrementally: missing memory source"};
+ }
+ return IncrementalReader::FromMemory(chunk_size, content_.get());
+}
+
namespace std {
auto hash<ArtifactBlob>::operator()(ArtifactBlob const& blob) const noexcept
-> std::size_t {