diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2025-02-25 11:00:42 +0100 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2025-02-27 09:03:30 +0100 |
commit | 9a987188a38cc18f6a485bd5def16aded10fe1f6 (patch) | |
tree | 24dff0755833c14d9e196e6c48937fa45c3d5de4 /src/buildtool/common/artifact_blob.hpp | |
parent | 0570178dbfd3e90f1532421dab91b510e6c42937 (diff) | |
download | justbuild-9a987188a38cc18f6a485bd5def16aded10fe1f6.tar.gz |
ArtifactBlob: Support incremental reading
Diffstat (limited to 'src/buildtool/common/artifact_blob.hpp')
-rw-r--r-- | src/buildtool/common/artifact_blob.hpp | 10 |
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; |