summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/remote
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/execution_api/remote')
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.cpp11
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.hpp3
2 files changed, 8 insertions, 6 deletions
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
index 7539771e..48cf3133 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
@@ -212,7 +212,8 @@ auto BazelApi::CreateAction(
[[nodiscard]] auto BazelApi::RetrieveToPaths(
std::vector<Artifact::ObjectInfo> const& artifacts_info,
std::vector<std::filesystem::path> const& output_paths,
- IExecutionApi* alternative) noexcept -> bool {
+ std::optional<gsl::not_null<IExecutionApi*>> const& alternative) noexcept
+ -> bool {
if (artifacts_info.size() != output_paths.size()) {
Logger::Log(LogLevel::Error,
"different number of digests and output paths.");
@@ -224,9 +225,9 @@ auto BazelApi::CreateAction(
std::vector<std::size_t> artifact_pos{};
for (std::size_t i{}; i < artifacts_info.size(); ++i) {
auto const& info = artifacts_info[i];
- if ((alternative != nullptr) and
- alternative->IsAvailable(info.digest)) {
- if (not alternative->RetrieveToPaths({info}, {output_paths[i]})) {
+ if (alternative and alternative.value()->IsAvailable(info.digest)) {
+ if (not alternative.value()->RetrieveToPaths({info},
+ {output_paths[i]})) {
return false;
}
}
@@ -234,7 +235,7 @@ auto BazelApi::CreateAction(
if (IsTreeObject(info.type)) {
// read object infos from sub tree and call retrieve recursively
auto const infos = network_->RecursivelyReadTreeLeafs(
- info.digest, output_paths[i], alternative != nullptr);
+ info.digest, output_paths[i], alternative.has_value());
if (not infos or
not RetrieveToPaths(infos->second, infos->first)) {
return false;
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.hpp b/src/buildtool/execution_api/remote/bazel/bazel_api.hpp
index d0b38d32..aae90907 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.hpp
@@ -61,7 +61,8 @@ class BazelApi final : public IExecutionApi {
[[nodiscard]] auto RetrieveToPaths(
std::vector<Artifact::ObjectInfo> const& artifacts_info,
std::vector<std::filesystem::path> const& output_paths,
- IExecutionApi* alternative = nullptr) noexcept -> bool final;
+ std::optional<gsl::not_null<IExecutionApi*>> const& alternative =
+ std::nullopt) noexcept -> bool final;
[[nodiscard]] auto RetrieveToFds(
std::vector<Artifact::ObjectInfo> const& artifacts_info,