summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2025-02-20 12:44:37 +0100
committerMaksim Denisov <denisov.maksim@huawei.com>2025-02-21 14:46:30 +0100
commit185d67664ff4e6cd87a4190ce233bd0cf1a40f98 (patch)
treeaba8721bc7c6723e8ae7f35999ec658bee56f86b
parentff9a8dfbe17f88cec92a00f00d2dbfb9015e342b (diff)
downloadjustbuild-185d67664ff4e6cd87a4190ce233bd0cf1a40f98.tar.gz
ByteStreamUtils: Simplify ReadRequest and WriteRequest
-rw-r--r--src/buildtool/execution_api/common/bytestream_utils.cpp34
-rw-r--r--src/buildtool/execution_api/common/bytestream_utils.hpp20
-rw-r--r--src/buildtool/execution_api/remote/bazel/bytestream_client.hpp11
-rw-r--r--test/buildtool/execution_api/common/bytestream_utils.test.cpp4
4 files changed, 27 insertions, 42 deletions
diff --git a/src/buildtool/execution_api/common/bytestream_utils.cpp b/src/buildtool/execution_api/common/bytestream_utils.cpp
index 13759eba..93acede8 100644
--- a/src/buildtool/execution_api/common/bytestream_utils.cpp
+++ b/src/buildtool/execution_api/common/bytestream_utils.cpp
@@ -60,18 +60,14 @@ namespace {
}
} // namespace
-ByteStreamUtils::ReadRequest::ReadRequest(std::string instance_name,
- ArtifactDigest const& digest) noexcept
- : instance_name_{std::move(instance_name)},
- hash_{ArtifactDigestFactory::ToBazel(digest).hash()},
- size_{digest.size()} {}
-
-auto ByteStreamUtils::ReadRequest::ToString() && noexcept -> std::string {
+auto ByteStreamUtils::ReadRequest::ToString(
+ std::string instance_name,
+ ArtifactDigest const& digest) noexcept -> std::string {
return fmt::format("{}/{}/{}/{}",
- std::move(instance_name_),
+ std::move(instance_name),
ByteStreamUtils::kBlobs,
- std::move(hash_),
- size_);
+ ArtifactDigestFactory::ToBazel(digest).hash(),
+ digest.size());
}
auto ByteStreamUtils::ReadRequest::FromString(
@@ -105,23 +101,17 @@ auto ByteStreamUtils::ReadRequest::GetDigest(HashFunction::Type hash_type)
return ArtifactDigestFactory::FromBazel(hash_type, bazel_digest);
}
-ByteStreamUtils::WriteRequest::WriteRequest(
+auto ByteStreamUtils::WriteRequest::ToString(
std::string instance_name,
std::string uuid,
- ArtifactDigest const& digest) noexcept
- : instance_name_{std::move(instance_name)},
- uuid_{std::move(uuid)},
- hash_{ArtifactDigestFactory::ToBazel(digest).hash()},
- size_{digest.size()} {}
-
-auto ByteStreamUtils::WriteRequest::ToString() && noexcept -> std::string {
+ ArtifactDigest const& digest) noexcept -> std::string {
return fmt::format("{}/{}/{}/{}/{}/{}",
- std::move(instance_name_),
+ std::move(instance_name),
ByteStreamUtils::kUploads,
- std::move(uuid_),
+ std::move(uuid),
ByteStreamUtils::kBlobs,
- std::move(hash_),
- size_);
+ ArtifactDigestFactory::ToBazel(digest).hash(),
+ digest.size());
}
auto ByteStreamUtils::WriteRequest::FromString(
diff --git a/src/buildtool/execution_api/common/bytestream_utils.hpp b/src/buildtool/execution_api/common/bytestream_utils.hpp
index a9d5ff59..52d96a25 100644
--- a/src/buildtool/execution_api/common/bytestream_utils.hpp
+++ b/src/buildtool/execution_api/common/bytestream_utils.hpp
@@ -38,10 +38,9 @@ class ByteStreamUtils final {
/// "instance_name_example/blobs/62183d7a696acf7e69e218efc82c93135f8c85f895/4424712"
class ReadRequest final {
public:
- explicit ReadRequest(std::string instance_name,
- ArtifactDigest const& digest) noexcept;
-
- [[nodiscard]] auto ToString() && noexcept -> std::string;
+ [[nodiscard]] static auto ToString(
+ std::string instance_name,
+ ArtifactDigest const& digest) noexcept -> std::string;
[[nodiscard]] static auto FromString(
std::string const& request) noexcept -> std::optional<ReadRequest>;
@@ -59,7 +58,7 @@ class ByteStreamUtils final {
std::string hash_;
std::size_t size_ = 0;
- ReadRequest() = default;
+ explicit ReadRequest() = default;
};
/// \brief Create a write request for the bytestream service to be
@@ -69,11 +68,10 @@ class ByteStreamUtils final {
/// "instance_name_example/uploads/c4f03510-7d56-4490-8934-01bce1b1288e/blobs/62183d7a696acf7e69e218efc82c93135f8c85f895/4424712"
class WriteRequest final {
public:
- explicit WriteRequest(std::string instance_name,
- std::string uuid,
- ArtifactDigest const& digest) noexcept;
-
- [[nodiscard]] auto ToString() && noexcept -> std::string;
+ [[nodiscard]] static auto ToString(
+ std::string instance_name,
+ std::string uuid,
+ ArtifactDigest const& digest) noexcept -> std::string;
[[nodiscard]] static auto FromString(
std::string const& request) noexcept -> std::optional<WriteRequest>;
@@ -96,7 +94,7 @@ class ByteStreamUtils final {
std::string hash_;
std::size_t size_ = 0;
- WriteRequest() = default;
+ explicit WriteRequest() = default;
};
};
diff --git a/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp b/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp
index e4f8f465..213e4793 100644
--- a/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp
@@ -83,10 +83,8 @@ class ByteStreamClient {
Logger const* logger)
: logger_{logger} {
google::bytestream::ReadRequest request{};
-
- auto resource_name =
- ByteStreamUtils::ReadRequest{instance_name, digest}.ToString();
- request.set_resource_name(std::move(resource_name));
+ request.set_resource_name(
+ ByteStreamUtils::ReadRequest::ToString(instance_name, digest));
reader_ = stub->Read(&ctx_, request);
}
};
@@ -138,9 +136,8 @@ class ByteStreamClient {
google::bytestream::WriteResponse response{};
auto writer = stub_->Write(&ctx, &response);
- auto const resource_name =
- ByteStreamUtils::WriteRequest{instance_name, uuid, blob.digest}
- .ToString();
+ auto const resource_name = ByteStreamUtils::WriteRequest::ToString(
+ instance_name, uuid, blob.digest);
google::bytestream::WriteRequest request{};
request.set_resource_name(resource_name);
diff --git a/test/buildtool/execution_api/common/bytestream_utils.test.cpp b/test/buildtool/execution_api/common/bytestream_utils.test.cpp
index 4c20b7f2..38a84715 100644
--- a/test/buildtool/execution_api/common/bytestream_utils.test.cpp
+++ b/test/buildtool/execution_api/common/bytestream_utils.test.cpp
@@ -34,7 +34,7 @@ TEST_CASE("ReadRequest", "[common]") {
hash_function, "test_string");
std::string const request =
- ByteStreamUtils::ReadRequest{kInstanceName, digest}.ToString();
+ ByteStreamUtils::ReadRequest::ToString(kInstanceName, digest);
auto const parsed = ByteStreamUtils::ReadRequest::FromString(request);
auto parsed_digest = parsed->GetDigest(hash_function.GetType());
REQUIRE(parsed);
@@ -55,7 +55,7 @@ TEST_CASE("WriteRequest", "[common]") {
hash_function, "test_string");
std::string const request =
- ByteStreamUtils::WriteRequest{kInstanceName, uuid, digest}.ToString();
+ ByteStreamUtils::WriteRequest::ToString(kInstanceName, uuid, digest);
auto const parsed = ByteStreamUtils::WriteRequest::FromString(request);
auto parsed_digest = parsed->GetDigest(hash_function.GetType());
REQUIRE(parsed);