diff options
Diffstat (limited to 'src')
3 files changed, 13 insertions, 16 deletions
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp index 70ff27c4..36265890 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp @@ -128,16 +128,14 @@ auto BazelCasClient::FindMissingBlobs( auto BazelCasClient::BatchUpdateBlobs( std::string const& instance_name, std::vector<BazelBlob>::const_iterator const& begin, - std::vector<BazelBlob>::const_iterator const& end) noexcept - -> std::vector<bazel_re::Digest> { + std::vector<BazelBlob>::const_iterator const& end) noexcept -> std::size_t { return DoBatchUpdateBlobs(instance_name, begin, end); } auto BazelCasClient::BatchUpdateBlobs( std::string const& instance_name, BlobContainer::iterator const& begin, - BlobContainer::iterator const& end) noexcept - -> std::vector<bazel_re::Digest> { + BlobContainer::iterator const& end) noexcept -> std::size_t { return DoBatchUpdateBlobs(instance_name, begin, end); } @@ -145,7 +143,7 @@ auto BazelCasClient::BatchUpdateBlobs( std::string const& instance_name, BlobContainer::RelatedBlobList::iterator const& begin, BlobContainer::RelatedBlobList::iterator const& end) noexcept - -> std::vector<bazel_re::Digest> { + -> std::size_t { return DoBatchUpdateBlobs(instance_name, begin, end); } @@ -401,11 +399,11 @@ template <class T_OutputIter> auto BazelCasClient::DoBatchUpdateBlobs(std::string const& instance_name, T_OutputIter const& start, T_OutputIter const& end) noexcept - -> std::vector<bazel_re::Digest> { - std::vector<bazel_re::Digest> result; + -> std::size_t { if (start == end) { - return result; + return 0; } + std::vector<bazel_re::Digest> result; try { auto requests = CreateBatchRequestsMaxSize<bazel_re::BatchUpdateBlobsRequest>( @@ -476,7 +474,7 @@ auto BazelCasClient::DoBatchUpdateBlobs(std::string const& instance_name, return oss.str(); }); - return result; + return result.size(); } namespace detail { diff --git a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp index 51cfbb50..c2567472 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp @@ -64,7 +64,7 @@ class BazelCasClient { std::string const& instance_name, std::vector<BazelBlob>::const_iterator const& begin, std::vector<BazelBlob>::const_iterator const& end) noexcept - -> std::vector<bazel_re::Digest>; + -> std::size_t; /// \brief Upload multiple blobs in batch transfer /// \param[in] instance_name Name of the CAS instance @@ -74,8 +74,7 @@ class BazelCasClient { [[nodiscard]] auto BatchUpdateBlobs( std::string const& instance_name, BlobContainer::iterator const& begin, - BlobContainer::iterator const& end) noexcept - -> std::vector<bazel_re::Digest>; + BlobContainer::iterator const& end) noexcept -> std::size_t; /// \brief Upload multiple blobs in batch transfer /// \param[in] instance_name Name of the CAS instance @@ -86,7 +85,7 @@ class BazelCasClient { std::string const& instance_name, BlobContainer::RelatedBlobList::iterator const& begin, BlobContainer::RelatedBlobList::iterator const& end) noexcept - -> std::vector<bazel_re::Digest>; + -> std::size_t; /// \brief Read multiple blobs in batch transfer /// \param[in] instance_name Name of the CAS instance @@ -152,7 +151,7 @@ class BazelCasClient { [[nodiscard]] auto DoBatchUpdateBlobs(std::string const& instance_name, T_OutputIter const& start, T_OutputIter const& end) noexcept - -> std::vector<bazel_re::Digest>; + -> std::size_t; template <typename T_Request, typename T_ForwardIter> [[nodiscard]] auto CreateBatchRequestsMaxSize( diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp index d6a5f78d..223960cb 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp @@ -174,10 +174,10 @@ auto BazelNetwork::DoUploadBlobs(T_Iter const& first, sorted.begin(), sorted.end(), [](auto const& x) { return x.data.size() <= kMaxBatchTransferSize; }); - auto digests = + auto digests_count = cas_->BatchUpdateBlobs(instance_name_, sorted.begin(), it); - return digests.size() == std::distance(sorted.begin(), it) && + return digests_count == std::distance(sorted.begin(), it) && std::all_of(it, sorted.end(), [this](auto const& x) { return cas_->UpdateSingleBlob(instance_name_, x); }); |