summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/common/bytestream_utils.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/execution_api/common/bytestream_utils.hpp')
-rw-r--r--src/buildtool/execution_api/common/bytestream_utils.hpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/buildtool/execution_api/common/bytestream_utils.hpp b/src/buildtool/execution_api/common/bytestream_utils.hpp
index 232c6728..16904f4f 100644
--- a/src/buildtool/execution_api/common/bytestream_utils.hpp
+++ b/src/buildtool/execution_api/common/bytestream_utils.hpp
@@ -16,10 +16,13 @@
#define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_BYTESTREAM_UTILS_HPP
#include <cstddef>
-#include <cstdint>
#include <optional>
#include <string>
+#include "src/buildtool/common/artifact_digest.hpp"
+#include "src/buildtool/crypto/hash_function.hpp"
+#include "src/utils/cpp/expected.hpp"
+
namespace build::bazel::remote::execution::v2 {
class Digest;
}
@@ -43,6 +46,9 @@ class ByteStreamUtils final {
explicit ReadRequest(std::string instance_name,
bazel_re::Digest const& digest) noexcept;
+ explicit ReadRequest(std::string instance_name,
+ ArtifactDigest const& digest) noexcept;
+
[[nodiscard]] auto ToString() && noexcept -> std::string;
[[nodiscard]] static auto FromString(
@@ -53,12 +59,13 @@ class ByteStreamUtils final {
return instance_name_;
}
- [[nodiscard]] auto GetDigest() const noexcept -> bazel_re::Digest;
+ [[nodiscard]] auto GetDigest(HashFunction::Type hash_type)
+ const noexcept -> expected<ArtifactDigest, std::string>;
private:
std::string instance_name_;
std::string hash_;
- std::int64_t size_ = 0;
+ std::size_t size_ = 0;
ReadRequest() = default;
};
@@ -74,6 +81,10 @@ class ByteStreamUtils final {
std::string uuid,
bazel_re::Digest const& digest) noexcept;
+ explicit WriteRequest(std::string instance_name,
+ std::string uuid,
+ ArtifactDigest const& digest) noexcept;
+
[[nodiscard]] auto ToString() && noexcept -> std::string;
[[nodiscard]] static auto FromString(
@@ -88,13 +99,14 @@ class ByteStreamUtils final {
return uuid_;
}
- [[nodiscard]] auto GetDigest() const noexcept -> bazel_re::Digest;
+ [[nodiscard]] auto GetDigest(HashFunction::Type hash_type)
+ const noexcept -> expected<ArtifactDigest, std::string>;
private:
std::string instance_name_;
std::string uuid_;
std::string hash_;
- std::int64_t size_ = 0;
+ std::size_t size_ = 0;
WriteRequest() = default;
};