diff options
Diffstat (limited to 'src/buildtool/execution_api')
6 files changed, 17 insertions, 11 deletions
diff --git a/src/buildtool/execution_api/local/local_action.cpp b/src/buildtool/execution_api/local/local_action.cpp index 94d98d6b..955e6724 100644 --- a/src/buildtool/execution_api/local/local_action.cpp +++ b/src/buildtool/execution_api/local/local_action.cpp @@ -291,7 +291,7 @@ auto LocalAction::StageInputs( if (FileSystemManager::IsRelativePath(exec_path)) { return false; } - auto reader = TreeReader<LocalCasReader>{storage_.CAS()}; + auto reader = TreeReader<LocalCasReader>{&storage_.CAS()}; auto result = reader.RecursivelyReadTreeLeafs( root_digest_, exec_path, /*include_trees=*/true); if (not result) { diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp index 6f43dd44..bfa1d6c6 100644 --- a/src/buildtool/execution_api/local/local_api.hpp +++ b/src/buildtool/execution_api/local/local_api.hpp @@ -95,7 +95,7 @@ class LocalApi final : public IExecutionApi { auto const& info = artifacts_info[i]; if (IsTreeObject(info.type)) { // read object infos from sub tree and call retrieve recursively - auto reader = TreeReader<LocalCasReader>{storage_.CAS()}; + auto reader = TreeReader<LocalCasReader>{&storage_.CAS()}; auto const result = reader.RecursivelyReadTreeLeafs( info.digest, output_paths[i]); if (not result) { @@ -149,7 +149,7 @@ class LocalApi final : public IExecutionApi { std::vector<Artifact::ObjectInfo> const& artifacts_info, std::vector<int> const& fds, bool raw_tree) const noexcept -> bool final { - auto dumper = StreamDumper<LocalCasReader>{storage_.CAS()}; + auto dumper = StreamDumper<LocalCasReader>{&storage_.CAS()}; return CommonRetrieveToFds( artifacts_info, fds, @@ -202,7 +202,7 @@ class LocalApi final : public IExecutionApi { auto const& info = missing_artifacts_info->back_map[dgst]; // Recursively process trees. if (IsTreeObject(info.type)) { - auto reader = TreeReader<LocalCasReader>{storage_.CAS()}; + auto reader = TreeReader<LocalCasReader>{&storage_.CAS()}; auto const& result = reader.ReadDirectTreeEntries( info.digest, std::filesystem::path{}); if (not result or not RetrieveToCas(result->infos, api)) { diff --git a/src/buildtool/execution_api/local/local_cas_reader.hpp b/src/buildtool/execution_api/local/local_cas_reader.hpp index 9618dbc4..64a1a51e 100644 --- a/src/buildtool/execution_api/local/local_cas_reader.hpp +++ b/src/buildtool/execution_api/local/local_cas_reader.hpp @@ -20,6 +20,7 @@ #include <optional> #include <string> +#include "gsl/gsl" #include "src/buildtool/common/artifact.hpp" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/bazel_types.hpp" @@ -30,7 +31,9 @@ class LocalCasReader final { public: using DumpCallback = std::function<bool(std::string const&)>; - explicit LocalCasReader(LocalCAS<true> const& cas) noexcept : cas_(cas) {} + explicit LocalCasReader( + gsl::not_null<LocalCAS<true> const*> const& cas) noexcept + : cas_(*cas) {} [[nodiscard]] auto ReadDirectory(ArtifactDigest const& digest) const noexcept -> std::optional<bazel_re::Directory>; diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp index 6094888d..34ae6af4 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp @@ -136,7 +136,7 @@ auto BazelNetwork::ExecuteBazelActionSync( } auto BazelNetwork::CreateReader() const noexcept -> BazelNetworkReader { - return BazelNetworkReader{instance_name_, *cas_}; + return BazelNetworkReader{instance_name_, cas_.get()}; } auto BazelNetwork::GetCachedActionResult( 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 d945fdb3..9f4c34c8 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp @@ -24,9 +24,10 @@ #include "src/buildtool/logging/logger.hpp" #include "src/utils/cpp/path.hpp" -BazelNetworkReader::BazelNetworkReader(std::string instance_name, - BazelCasClient const& cas) noexcept - : instance_name_{std::move(instance_name)}, cas_(cas) {} +BazelNetworkReader::BazelNetworkReader( + std::string instance_name, + gsl::not_null<BazelCasClient const*> const& cas) noexcept + : instance_name_{std::move(instance_name)}, cas_(*cas) {} BazelNetworkReader::BazelNetworkReader( BazelNetworkReader&& other, 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 9f1fbef2..2955fa57 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_network_reader.hpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_network_reader.hpp @@ -24,6 +24,7 @@ #include <unordered_map> #include <vector> +#include "gsl/gsl" #include "src/buildtool/common/artifact.hpp" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/bazel_types.hpp" @@ -38,8 +39,9 @@ class BazelNetworkReader final { public: using DumpCallback = std::function<bool(std::string const&)>; - BazelNetworkReader(std::string instance_name, - BazelCasClient const& cas) noexcept; + explicit BazelNetworkReader( + std::string instance_name, + gsl::not_null<BazelCasClient const*> const& cas) noexcept; BazelNetworkReader( BazelNetworkReader&& other, |