summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2025-03-03 12:24:04 +0100
committerMaksim Denisov <denisov.maksim@huawei.com>2025-03-24 09:33:46 +0100
commita428fdde8dc18ac7ba8738b198f95ae7eaba346d (patch)
tree218f02f573f4df6f12f072235a814a41378038f0 /src
parentf0b76f319e6010118392a100564280fdb69b7837 (diff)
downloadjustbuild-a428fdde8dc18ac7ba8738b198f95ae7eaba346d.tar.gz
BazelNetworkReader: Remove IncrementalReader
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp87
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_network_reader.hpp67
2 files changed, 1 insertions, 153 deletions
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp b/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp
index a82d5c6e..6f125d67 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp
@@ -15,6 +15,7 @@
#include "src/buildtool/execution_api/remote/bazel/bazel_network_reader.hpp"
#include <algorithm>
+#include <cstddef>
#include <filesystem>
#include <memory>
#include <unordered_set>
@@ -223,89 +224,3 @@ auto BazelNetworkReader::ReadOrdered(std::vector<ArtifactDigest> const& digests)
}
return artifacts;
}
-
-auto BazelNetworkReader::ReadIncrementally(
- gsl::not_null<std::vector<ArtifactDigest> const*> const& digests)
- const noexcept -> IncrementalReader {
- return IncrementalReader{*this, digests};
-}
-
-auto BazelNetworkReader::BatchReadBlobs(
- std::vector<ArtifactDigest> const& digests) const noexcept
- -> std::vector<ArtifactBlob> {
- // Batch blobs:
- auto const batched_blobs = cas_.BatchReadBlobs(
- instance_name_, std::unordered_set(digests.begin(), digests.end()));
-
- // Map digests to blobs for further lookup:
- auto const back_map = BackMap<ArtifactDigest, ArtifactBlob>::Make(
- &batched_blobs,
- [](ArtifactBlob const& blob) { return blob.GetDigest(); });
-
- if (back_map == nullptr) {
- return {};
- }
-
- // Restore the requested order:
- std::vector<ArtifactBlob> artifacts;
- artifacts.reserve(digests.size());
- for (ArtifactDigest const& digest : digests) {
- if (auto value = back_map->GetReference(digest)) {
- artifacts.emplace_back(*value.value());
- }
- }
- return artifacts;
-}
-
-auto BazelNetworkReader::GetMaxBatchTransferSize() const noexcept
- -> std::size_t {
- return cas_.GetMaxBatchTransferSize(instance_name_);
-}
-
-namespace {
-[[nodiscard]] auto FindCurrentIterator(
- std::size_t content_limit,
- std::vector<ArtifactDigest>::const_iterator const& begin,
- std::vector<ArtifactDigest>::const_iterator const& end) noexcept {
- auto it =
- std::find_if(begin, end, [content_limit](ArtifactDigest const& digest) {
- auto const size = digest.size();
- return size == 0 or size > content_limit;
- });
- if (it == begin and begin != end) {
- ++it;
- }
- return it;
-}
-} // namespace
-
-BazelNetworkReader::IncrementalReader::Iterator::Iterator(
- BazelNetworkReader const& owner,
- std::vector<ArtifactDigest>::const_iterator begin,
- std::vector<ArtifactDigest>::const_iterator end) noexcept
- : owner_{owner}, begin_{begin}, end_{end} {
- current_ =
- FindCurrentIterator(owner_.GetMaxBatchTransferSize(), begin_, end_);
-}
-
-auto BazelNetworkReader::IncrementalReader::Iterator::operator*() const noexcept
- -> value_type {
- if (begin_ != current_) {
- if (std::distance(begin_, current_) > 1) {
- std::vector<ArtifactDigest> request{begin_, current_};
- return owner_.BatchReadBlobs(request);
- }
- if (auto blob = owner_.ReadSingleBlob(*begin_)) {
- return {std::move(*blob)};
- }
- }
- return {};
-}
-
-auto BazelNetworkReader::IncrementalReader::Iterator::operator++() noexcept
- -> Iterator& {
- begin_ = current_;
- current_ =
- FindCurrentIterator(owner_.GetMaxBatchTransferSize(), begin_, end_);
- return *this;
-}
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network_reader.hpp b/src/buildtool/execution_api/remote/bazel/bazel_network_reader.hpp
index c11da691..f7915446 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_network_reader.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_network_reader.hpp
@@ -15,10 +15,8 @@
#ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_REMOTE_BAZEL_BAZEL_TREE_READER_HPP
#define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_REMOTE_BAZEL_BAZEL_TREE_READER_HPP
-#include <cstddef>
#include <filesystem>
#include <functional>
-#include <iterator>
#include <optional>
#include <string>
#include <unordered_map>
@@ -80,10 +78,6 @@ class BazelNetworkReader final {
[[nodiscard]] auto ReadOrdered(std::vector<ArtifactDigest> const& digests)
const noexcept -> std::vector<ArtifactBlob>;
- [[nodiscard]] auto ReadIncrementally(
- gsl::not_null<std::vector<ArtifactDigest> const*> const& digests)
- const noexcept -> IncrementalReader;
-
private:
using DirectoryMap =
std::unordered_map<ArtifactDigest, bazel_re::Directory>;
@@ -96,67 +90,6 @@ class BazelNetworkReader final {
[[nodiscard]] auto MakeAuxiliaryMap(
std::vector<bazel_re::Directory>&& full_tree) const noexcept
-> std::optional<DirectoryMap>;
-
- [[nodiscard]] auto BatchReadBlobs(
- std::vector<ArtifactDigest> const& digests) const noexcept
- -> std::vector<ArtifactBlob>;
-
- [[nodiscard]] auto GetMaxBatchTransferSize() const noexcept -> std::size_t;
-};
-
-class BazelNetworkReader::IncrementalReader final {
- public:
- IncrementalReader(
- BazelNetworkReader const& owner,
- gsl::not_null<std::vector<ArtifactDigest> const*> digests) noexcept
- : owner_(owner), digests_(*digests) {}
-
- class Iterator final {
- public:
- using value_type = std::vector<ArtifactBlob>;
- using pointer = value_type*;
- using reference = value_type&;
- using difference_type = std::ptrdiff_t;
- using iterator_category = std::forward_iterator_tag;
-
- Iterator(BazelNetworkReader const& owner,
- std::vector<ArtifactDigest>::const_iterator begin,
- std::vector<ArtifactDigest>::const_iterator end) noexcept;
-
- auto operator*() const noexcept -> value_type;
- auto operator++() noexcept -> Iterator&;
-
- [[nodiscard]] friend auto operator==(Iterator const& lhs,
- Iterator const& rhs) noexcept
- -> bool {
- return lhs.begin_ == rhs.begin_ and lhs.end_ == rhs.end_ and
- lhs.current_ == rhs.current_;
- }
-
- [[nodiscard]] friend auto operator!=(Iterator const& lhs,
- Iterator const& rhs) noexcept
- -> bool {
- return not(lhs == rhs);
- }
-
- private:
- BazelNetworkReader const& owner_;
- std::vector<ArtifactDigest>::const_iterator begin_;
- std::vector<ArtifactDigest>::const_iterator end_;
- std::vector<ArtifactDigest>::const_iterator current_;
- };
-
- [[nodiscard]] auto begin() const noexcept {
- return Iterator{owner_, digests_.begin(), digests_.end()};
- }
-
- [[nodiscard]] auto end() const noexcept {
- return Iterator{owner_, digests_.end(), digests_.end()};
- }
-
- private:
- BazelNetworkReader const& owner_;
- std::vector<ArtifactDigest> const& digests_;
};
#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_REMOTE_BAZEL_BAZEL_TREE_READER_HPP