From a7bdda7bd9520238ca3a588a33fc75beeef3c488 Mon Sep 17 00:00:00 2001 From: Maksim Denisov Date: Wed, 12 Jun 2024 10:00:06 +0200 Subject: Use RemoteServeConfig functionality via Instance() ...to track changes during refactoring easier. --- src/buildtool/serve_api/remote/config.hpp | 58 ++++++++++++++----------------- 1 file changed, 26 insertions(+), 32 deletions(-) (limited to 'src/buildtool/serve_api/remote/config.hpp') diff --git a/src/buildtool/serve_api/remote/config.hpp b/src/buildtool/serve_api/remote/config.hpp index 17fe758e..30197b53 100644 --- a/src/buildtool/serve_api/remote/config.hpp +++ b/src/buildtool/serve_api/remote/config.hpp @@ -33,76 +33,70 @@ class RemoteServeConfig { } // Set remote execution and cache address, unsets if parsing `address` fails - [[nodiscard]] static auto SetRemoteAddress( - std::string const& address) noexcept -> bool { - auto& inst = Instance(); - return static_cast(inst.remote_address_ = ParseAddress(address)); + [[nodiscard]] auto SetRemoteAddress(std::string const& address) noexcept + -> bool { + return static_cast(remote_address_ = ParseAddress(address)); } // Set the list of known repositories - [[nodiscard]] static auto SetKnownRepositories( + [[nodiscard]] auto SetKnownRepositories( std::vector const& repos) noexcept -> bool { - auto& inst = Instance(); - inst.repositories_ = std::vector( + repositories_ = std::vector( std::make_move_iterator(repos.begin()), std::make_move_iterator(repos.end())); - return repos.size() == inst.repositories_.size(); + return repos.size() == repositories_.size(); } // Set the number of jobs - [[nodiscard]] static auto SetJobs(std::size_t jobs) noexcept -> bool { - return static_cast(Instance().jobs_ = jobs); + [[nodiscard]] auto SetJobs(std::size_t jobs) noexcept -> bool { + return static_cast(jobs_ = jobs); } // Set the number of build jobs - [[nodiscard]] static auto SetBuildJobs(std::size_t build_jobs) noexcept - -> bool { - return static_cast(Instance().build_jobs_ = build_jobs); + [[nodiscard]] auto SetBuildJobs(std::size_t build_jobs) noexcept -> bool { + return static_cast(build_jobs_ = build_jobs); } // Set the action timeout - [[nodiscard]] static auto SetActionTimeout( + [[nodiscard]] auto SetActionTimeout( std::chrono::milliseconds const& timeout) noexcept -> bool { - Instance().timeout_ = timeout; - return Instance().timeout_ > std::chrono::seconds{0}; + timeout_ = timeout; + return timeout_ > std::chrono::seconds{0}; } - static void SetTCStrategy(TargetCacheWriteStrategy strategy) noexcept { - Instance().tc_strategy_ = strategy; + void SetTCStrategy(TargetCacheWriteStrategy strategy) noexcept { + tc_strategy_ = strategy; } // Remote execution address, if set - [[nodiscard]] static auto RemoteAddress() noexcept + [[nodiscard]] auto RemoteAddress() const noexcept -> std::optional { - return Instance().remote_address_; + return remote_address_; } // Repositories known to 'just serve' - [[nodiscard]] static auto KnownRepositories() noexcept + [[nodiscard]] auto KnownRepositories() const noexcept -> const std::vector& { - return Instance().repositories_; + return repositories_; } // Get the number of jobs - [[nodiscard]] static auto Jobs() noexcept -> std::size_t { - return Instance().jobs_; - } + [[nodiscard]] auto Jobs() const noexcept -> std::size_t { return jobs_; } // Get the number of build jobs - [[nodiscard]] static auto BuildJobs() noexcept -> std::size_t { - return Instance().build_jobs_; + [[nodiscard]] auto BuildJobs() const noexcept -> std::size_t { + return build_jobs_; } // Get the action timeout - [[nodiscard]] static auto ActionTimeout() noexcept + [[nodiscard]] auto ActionTimeout() const noexcept -> std::chrono::milliseconds { - return Instance().timeout_; + return timeout_; } // Get the target-level cache write strategy - [[nodiscard]] static auto TCStrategy() noexcept - -> TargetCacheWriteStrategy { - return Instance().tc_strategy_; + [[nodiscard]] auto TCStrategy() const noexcept -> TargetCacheWriteStrategy { + return tc_strategy_; } private: -- cgit v1.2.3