summaryrefslogtreecommitdiff
path: root/src/buildtool/common/artifact_blob.hpp
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.hpp
parent0570178dbfd3e90f1532421dab91b510e6c42937 (diff)
downloadjustbuild-9a987188a38cc18f6a485bd5def16aded10fe1f6.tar.gz
ArtifactBlob: Support incremental reading
Diffstat (limited to 'src/buildtool/common/artifact_blob.hpp')
-rw-r--r--src/buildtool/common/artifact_blob.hpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/buildtool/common/artifact_blob.hpp b/src/buildtool/common/artifact_blob.hpp
index d75a6b01..612f851f 100644
--- a/src/buildtool/common/artifact_blob.hpp
+++ b/src/buildtool/common/artifact_blob.hpp
@@ -22,6 +22,8 @@
#include <utility>
#include "src/buildtool/common/artifact_digest.hpp"
+#include "src/utils/cpp/expected.hpp"
+#include "src/utils/cpp/incremental_reader.hpp"
class ArtifactBlob final {
public:
@@ -52,6 +54,14 @@ class ArtifactBlob final {
[[nodiscard]] auto ReadContent() const noexcept
-> std::shared_ptr<std::string const>;
+ /// \brief Create an IncrementalReader that uses this ArtifactBlob's content
+ /// source.
+ /// \param chunk_size Size of chunk, must be greater than 0.
+ /// \return Valid IncrementalReader on success or an error message on
+ /// failure.
+ [[nodiscard]] auto ReadIncrementally(std::size_t chunk_size) const& noexcept
+ -> expected<IncrementalReader, std::string>;
+
/// \brief Set executable permission.
void SetExecutable(bool is_executable) noexcept {
is_executable_ = is_executable;