diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-06-12 16:14:15 +0200 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-06-18 12:05:10 +0200 |
commit | e0490fd703dcc177ee2e4dc7fc0650a535a53022 (patch) | |
tree | 6e5363c960afd0d325f3f6c623e1b1eb048e7c92 /src/buildtool/serve_api/serve_service/target_utils.cpp | |
parent | 5446c7433a714f1924d77003853d8e4fa3eb7e76 (diff) | |
download | justbuild-e0490fd703dcc177ee2e4dc7fc0650a535a53022.tar.gz |
Pass RemoteServeConfig to ServeServerImpl by reference
...instead of using singleton calls.
Diffstat (limited to 'src/buildtool/serve_api/serve_service/target_utils.cpp')
-rw-r--r-- | src/buildtool/serve_api/serve_service/target_utils.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/buildtool/serve_api/serve_service/target_utils.cpp b/src/buildtool/serve_api/serve_service/target_utils.cpp index 7e99ff23..3027775e 100644 --- a/src/buildtool/serve_api/serve_service/target_utils.cpp +++ b/src/buildtool/serve_api/serve_service/target_utils.cpp @@ -25,7 +25,6 @@ #include "src/buildtool/file_system/git_repo.hpp" #include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" -#include "src/buildtool/serve_api/remote/config.hpp" #include "src/buildtool/storage/config.hpp" #include "src/buildtool/storage/storage.hpp" @@ -54,7 +53,8 @@ auto IsTreeInRepo(std::string const& tree_id, return false; // tree not found } -auto GetServingRepository(std::string const& tree_id, +auto GetServingRepository(RemoteServeConfig const& serve_config, + std::string const& tree_id, std::shared_ptr<Logger> const& logger) -> std::optional<std::filesystem::path> { // try the Git cache repository @@ -62,7 +62,7 @@ auto GetServingRepository(std::string const& tree_id, return StorageConfig::GitRoot(); } // check the known repositories - for (auto const& path : RemoteServeConfig::Instance().KnownRepositories()) { + for (auto const& path : serve_config.KnownRepositories()) { if (IsTreeInRepo(tree_id, path, logger)) { return path; } @@ -70,7 +70,8 @@ auto GetServingRepository(std::string const& tree_id, return std::nullopt; // tree cannot be served } -auto DetermineRoots(std::string const& main_repo, +auto DetermineRoots(RemoteServeConfig const& serve_config, + std::string const& main_repo, std::filesystem::path const& repo_config_path, gsl::not_null<RepositoryConfig*> const& repository_config, std::shared_ptr<Logger> const& logger) @@ -101,8 +102,11 @@ auto DetermineRoots(std::string const& main_repo, for (auto const& [repo, desc] : repos.items()) { // root parser auto parse_keyword_root = - [&desc = desc, &repo = repo, &error_msg = error_msg, logger]( - std::string const& keyword) -> std::optional<FileRoot> { + [&serve_config, + &desc = desc, + &repo = repo, + &error_msg = error_msg, + logger](std::string const& keyword) -> std::optional<FileRoot> { auto it = desc.find(keyword); if (it != desc.end()) { if (auto parsed_root = @@ -118,7 +122,8 @@ auto DetermineRoots(std::string const& main_repo, } // find the serving repository for the root tree auto tree_id = *parsed_root->first.GetAbsentTreeId(); - auto repo_path = GetServingRepository(tree_id, logger); + auto repo_path = + GetServingRepository(serve_config, tree_id, logger); if (not repo_path) { error_msg = fmt::format( "{} tree {} is not known", keyword, tree_id); |