diff options
author | Sascha Roloff <sascha.roloff@huawei.com> | 2022-07-08 10:04:34 +0200 |
---|---|---|
committer | Sascha Roloff <sascha.roloff@huawei.com> | 2022-08-05 14:41:31 +0200 |
commit | bb2375008f69bf62d510ce862f1d4370fa130ef3 (patch) | |
tree | aa757c0eec0455782cb764ce09c46adc8ef250cf /src/buildtool/execution_api/remote/bazel/bazel_api.cpp | |
parent | 30c5aa0b3dc37c784311a905f120e0e8b1f651fd (diff) | |
download | justbuild-bb2375008f69bf62d510ce862f1d4370fa130ef3.tar.gz |
Introduced batch availability check for remote execution api
Diffstat (limited to 'src/buildtool/execution_api/remote/bazel/bazel_api.cpp')
-rw-r--r-- | src/buildtool/execution_api/remote/bazel/bazel_api.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp index ca5d4946..51e85176 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp @@ -170,7 +170,7 @@ auto BazelApi::CreateAction( return std::nullopt; } if (tree_map_->AddTree(*digest, std::move(tree))) { - return ArtifactDigest{std::move(*digest)}; + return ArtifactDigest{*digest}; } return std::nullopt; } @@ -179,3 +179,23 @@ auto BazelApi::CreateAction( ArtifactDigest const& digest) const noexcept -> bool { return network_->IsAvailable(digest); } + +[[nodiscard]] auto BazelApi::IsAvailable( + std::vector<ArtifactDigest> const& digests) const noexcept + -> std::vector<ArtifactDigest> { + std::vector<bazel_re::Digest> bazel_digests; + bazel_digests.reserve(digests.size()); + std::transform(digests.begin(), + digests.end(), + std::back_inserter(bazel_digests), + [](ArtifactDigest const& digest) { return digest; }); + auto bazel_result = network_->IsAvailable(bazel_digests); + std::vector<ArtifactDigest> result; + result.reserve(bazel_result.size()); + std::transform( + bazel_result.begin(), + bazel_result.end(), + std::back_inserter(result), + [](bazel_re::Digest& digest) { return ArtifactDigest{digest}; }); + return result; +} |