From 69f56ad981da59f026c83b321522ad68283934c5 Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Thu, 25 Jul 2024 14:35:28 +0200 Subject: Pass LocalContext to LocalApi The context is passed by not_null const pointer to avoid binding to temporaries. The LocalApi also stores the context as const ref for further access and passing it to LocalAction. --- src/buildtool/execution_api/local/local_action.hpp | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'src/buildtool/execution_api/local/local_action.hpp') diff --git a/src/buildtool/execution_api/local/local_action.hpp b/src/buildtool/execution_api/local/local_action.hpp index 47e4e5a4..b2016ed7 100644 --- a/src/buildtool/execution_api/local/local_action.hpp +++ b/src/buildtool/execution_api/local/local_action.hpp @@ -28,10 +28,8 @@ #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/execution_api/common/execution_action.hpp" #include "src/buildtool/execution_api/common/execution_response.hpp" -#include "src/buildtool/execution_api/local/config.hpp" +#include "src/buildtool/execution_api/local/context.hpp" #include "src/buildtool/logging/logger.hpp" -#include "src/buildtool/storage/config.hpp" -#include "src/buildtool/storage/storage.hpp" #include "src/utils/cpp/tmp_dir.hpp" class LocalApi; @@ -64,9 +62,7 @@ class LocalAction final : public IExecutionAction { private: Logger logger_{"LocalExecution"}; - StorageConfig const& storage_config_; - Storage const& storage_; - LocalExecutionConfig const& exec_config_; + LocalContext const& local_context_; ArtifactDigest const root_digest_{}; std::vector const cmdline_{}; std::vector output_files_{}; @@ -77,18 +73,14 @@ class LocalAction final : public IExecutionAction { CacheFlag cache_flag_{CacheFlag::CacheOutput}; explicit LocalAction( - gsl::not_null storage_config, - gsl::not_null const& storage, - gsl::not_null const& exec_config, + gsl::not_null local_context, ArtifactDigest root_digest, std::vector command, std::vector output_files, std::vector output_dirs, std::map env_vars, std::map const& properties) noexcept - : storage_config_{*storage_config}, - storage_{*storage}, - exec_config_{*exec_config}, + : local_context_{*local_context}, root_digest_{std::move(root_digest)}, cmdline_{std::move(command)}, output_files_{std::move(output_files)}, @@ -113,7 +105,7 @@ class LocalAction final : public IExecutionAction { .env_vars = &env_vars, .properties = &properties_, .exec_dir = &exec_dir, - .hash_function = storage_config_.hash_function, + .hash_function = local_context_.storage_config->hash_function, .timeout = timeout_, .skip_action_cache = do_not_cache}; return BazelMsgFactory::CreateActionDigestFromCommandLine(request); -- cgit v1.2.3