diff options
Diffstat (limited to 'src')
21 files changed, 55 insertions, 32 deletions
diff --git a/src/buildtool/storage/TARGETS b/src/buildtool/storage/TARGETS index 1bd1fbb2..b334e4d0 100644 --- a/src/buildtool/storage/TARGETS +++ b/src/buildtool/storage/TARGETS @@ -4,6 +4,7 @@ , "hdrs": ["config.hpp"] , "deps": [ "backend_description" + , ["@", "fmt", "", "fmt"] , ["@", "gsl", "", "gsl"] , ["src/buildtool/common", "artifact_digest_factory"] , ["src/buildtool/common", "common"] @@ -12,8 +13,6 @@ , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/file_system", "file_system_manager"] , ["src/buildtool/file_system", "object_type"] - , ["src/buildtool/logging", "log_level"] - , ["src/buildtool/logging", "logging"] , ["src/utils/cpp", "expected"] , ["src/utils/cpp", "gsl"] , ["src/utils/cpp", "tmp_dir"] @@ -76,7 +75,6 @@ , ["src/buildtool/common", "common"] , ["src/buildtool/common", "protocol_traits"] , ["src/buildtool/crypto", "hash_function"] - , ["src/buildtool/execution_api/common", "common"] , ["src/buildtool/file_system", "file_storage"] , ["src/buildtool/file_system", "file_system_manager"] , ["src/buildtool/file_system", "git_repo"] @@ -86,14 +84,16 @@ , ["src/buildtool/logging", "logging"] , ["src/utils/cpp", "expected"] , ["src/utils/cpp", "file_locking"] + , ["src/utils/cpp", "gsl"] , ["src/utils/cpp", "tmp_dir"] ] , "stage": ["src", "buildtool", "storage"] , "private-deps": - [ ["src/buildtool/crypto", "hasher"] + [ ["src/buildtool/build_engine/expression", "expression_ptr_interface"] + , ["src/buildtool/crypto", "hasher"] + , ["src/buildtool/execution_api/common", "common"] , ["src/buildtool/execution_api/common", "message_limits"] , ["src/buildtool/multithreading", "task_system"] - , ["src/utils/cpp", "gsl"] , ["src/utils/cpp", "hex_string"] , ["src/utils/cpp", "path_hash"] ] @@ -112,11 +112,13 @@ ] , "stage": ["src", "buildtool", "storage"] , "private-deps": - [ ["@", "json", "", "json"] + [ ["@", "fmt", "", "fmt"] + , ["@", "json", "", "json"] , ["src/buildtool/file_system", "file_system_manager"] , ["src/buildtool/logging", "log_level"] , ["src/buildtool/logging", "logging"] , ["src/utils/cpp", "path"] + , ["src/utils/cpp", "tmp_dir"] ] } , "file_chunker": diff --git a/src/buildtool/storage/backend_description.cpp b/src/buildtool/storage/backend_description.cpp index c5f790aa..a290dc22 100644 --- a/src/buildtool/storage/backend_description.cpp +++ b/src/buildtool/storage/backend_description.cpp @@ -15,6 +15,7 @@ #include "src/buildtool/storage/backend_description.hpp" #include <exception> +#include <map> #include "fmt/core.h" #include "nlohmann/json.hpp" diff --git a/src/buildtool/storage/backend_description.hpp b/src/buildtool/storage/backend_description.hpp index 544ee1b9..c1ef17d7 100644 --- a/src/buildtool/storage/backend_description.hpp +++ b/src/buildtool/storage/backend_description.hpp @@ -15,10 +15,8 @@ #ifndef INCLUDED_SRC_BUILDTOOL_STORAGE_BACKEND_DESCRIPTION_HPP #define INCLUDED_SRC_BUILDTOOL_STORAGE_BACKEND_DESCRIPTION_HPP -#include <map> #include <optional> #include <string> -#include <utility> #include <vector> #include "src/buildtool/common/remote/remote_common.hpp" diff --git a/src/buildtool/storage/compactifier.cpp b/src/buildtool/storage/compactifier.cpp index 3bd39324..66fa6035 100644 --- a/src/buildtool/storage/compactifier.cpp +++ b/src/buildtool/storage/compactifier.cpp @@ -17,13 +17,11 @@ #include <algorithm> #include <array> #include <filesystem> -#include <functional> #include <optional> -#include <vector> +#include <string> +#include <utility> -#include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/artifact_digest_factory.hpp" -#include "src/buildtool/common/bazel_types.hpp" #include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/crypto/hasher.hpp" #include "src/buildtool/file_system/file_storage.hpp" @@ -32,7 +30,6 @@ #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" #include "src/buildtool/storage/compactification_task.hpp" -#include "src/buildtool/storage/local_cas.hpp" #include "src/utils/cpp/hex_string.hpp" namespace { diff --git a/src/buildtool/storage/compactifier.hpp b/src/buildtool/storage/compactifier.hpp index 3f9608f2..e004e807 100644 --- a/src/buildtool/storage/compactifier.hpp +++ b/src/buildtool/storage/compactifier.hpp @@ -17,8 +17,7 @@ #include <cstddef> -template <bool> -class LocalCAS; +#include "src/buildtool/storage/local_cas.hpp" class Compactifier final { public: diff --git a/src/buildtool/storage/config.hpp b/src/buildtool/storage/config.hpp index 598d9350..7d3f13c7 100644 --- a/src/buildtool/storage/config.hpp +++ b/src/buildtool/storage/config.hpp @@ -17,12 +17,12 @@ #include <cstddef> #include <filesystem> -#include <map> #include <optional> #include <string> #include <utility> #include <vector> +#include "fmt/core.h" #include "gsl/gsl" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/artifact_digest_factory.hpp" @@ -31,8 +31,6 @@ #include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/file_system/object_type.hpp" -#include "src/buildtool/logging/log_level.hpp" -#include "src/buildtool/logging/logger.hpp" #include "src/buildtool/storage/backend_description.hpp" #include "src/utils/cpp/expected.hpp" #include "src/utils/cpp/gsl.hpp" diff --git a/src/buildtool/storage/fs_utils.cpp b/src/buildtool/storage/fs_utils.cpp index 05883814..528dd8dd 100644 --- a/src/buildtool/storage/fs_utils.cpp +++ b/src/buildtool/storage/fs_utils.cpp @@ -14,15 +14,20 @@ #include "src/buildtool/storage/fs_utils.hpp" +#include <functional> +#include <memory> #include <tuple> //std::ignore #include <unordered_map> #include <utility> +#include <vector> +#include "fmt/core.h" #include "nlohmann/json.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" #include "src/utils/cpp/path.hpp" +#include "src/utils/cpp/tmp_dir.hpp" namespace StorageUtils { diff --git a/src/buildtool/storage/fs_utils.hpp b/src/buildtool/storage/fs_utils.hpp index 25392b91..e44a8cd2 100644 --- a/src/buildtool/storage/fs_utils.hpp +++ b/src/buildtool/storage/fs_utils.hpp @@ -15,6 +15,7 @@ #ifndef INCLUDED_SRC_BUILDTOOL_STORAGE_FS_UTILS_HPP #define INCLUDED_SRC_BUILDTOOL_STORAGE_FS_UTILS_HPP +#include <cstddef> #include <filesystem> #include <optional> #include <string> diff --git a/src/buildtool/storage/garbage_collector.cpp b/src/buildtool/storage/garbage_collector.cpp index c2d9ecd0..fa448552 100644 --- a/src/buildtool/storage/garbage_collector.cpp +++ b/src/buildtool/storage/garbage_collector.cpp @@ -16,18 +16,22 @@ #include "src/buildtool/storage/garbage_collector.hpp" +#include <algorithm> #include <array> #include <filesystem> +#include <string> #include <vector> -#include "src/buildtool/common/artifact.hpp" +#include "fmt/core.h" #include "src/buildtool/crypto/hash_function.hpp" +#include "src/buildtool/execution_api/common/execution_common.hpp" #include "src/buildtool/execution_api/common/message_limits.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" #include "src/buildtool/storage/compactifier.hpp" #include "src/buildtool/storage/storage.hpp" +#include "src/utils/cpp/expected.hpp" namespace { diff --git a/src/buildtool/storage/garbage_collector.hpp b/src/buildtool/storage/garbage_collector.hpp index 577e878d..f4966c28 100644 --- a/src/buildtool/storage/garbage_collector.hpp +++ b/src/buildtool/storage/garbage_collector.hpp @@ -16,9 +16,8 @@ #define INCLUDED_SRC_BUILDTOOL_STORAGE_GARBAGE_COLLECTOR_HPP #include <cstddef> -#include <functional> +#include <filesystem> #include <optional> -#include <string> #include "src/buildtool/storage/config.hpp" #include "src/utils/cpp/file_locking.hpp" diff --git a/src/buildtool/storage/large_object_cas.hpp b/src/buildtool/storage/large_object_cas.hpp index 21b3127d..97e82bbc 100644 --- a/src/buildtool/storage/large_object_cas.hpp +++ b/src/buildtool/storage/large_object_cas.hpp @@ -17,11 +17,13 @@ #include <cstdint> #include <filesystem> +#include <memory> #include <optional> #include <string> #include <utility> #include <vector> +#include "gsl/gsl" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/file_system/file_storage.hpp" #include "src/buildtool/file_system/object_type.hpp" diff --git a/src/buildtool/storage/local_ac.hpp b/src/buildtool/storage/local_ac.hpp index 60354a2b..30bf6d4a 100644 --- a/src/buildtool/storage/local_ac.hpp +++ b/src/buildtool/storage/local_ac.hpp @@ -21,8 +21,8 @@ #include "gsl/gsl" #include "src/buildtool/common/artifact_digest.hpp" +#include "src/buildtool/common/bazel_types.hpp" #include "src/buildtool/file_system/file_storage.hpp" -#include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/logger.hpp" #include "src/buildtool/storage/config.hpp" @@ -30,11 +30,12 @@ #include "src/buildtool/storage/uplinker.hpp" #include "src/utils/cpp/expected.hpp" -// forward declarations +#ifdef BOOTSTRAP_BUILD_TOOL +// forward declarations needed by the bootstrap process only namespace build::bazel::remote::execution::v2 { class ActionResult; } // namespace build::bazel::remote::execution::v2 -namespace bazel_re = build::bazel::remote::execution::v2; +#endif // BOOTSTRAP_BUILD_TOOL /// \brief The action cache for storing action results. /// Supports global uplinking across all generations. The uplink is diff --git a/src/buildtool/storage/local_cas.hpp b/src/buildtool/storage/local_cas.hpp index 9a9f040a..e4da10f3 100644 --- a/src/buildtool/storage/local_cas.hpp +++ b/src/buildtool/storage/local_cas.hpp @@ -18,6 +18,7 @@ #include <filesystem> #include <optional> #include <string> +#include <type_traits> #include <unordered_set> #include <vector> @@ -25,10 +26,10 @@ #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/protocol_traits.hpp" #include "src/buildtool/crypto/hash_function.hpp" -#include "src/buildtool/file_system/git_repo.hpp" #include "src/buildtool/file_system/object_cas.hpp" +#include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/storage/config.hpp" -#include "src/buildtool/storage/large_object_cas.hpp" +#include "src/buildtool/storage/large_object_cas.hpp" // IWYU pragma: keep #include "src/buildtool/storage/uplinker.hpp" #include "src/utils/cpp/expected.hpp" diff --git a/src/buildtool/storage/local_cas.tpp b/src/buildtool/storage/local_cas.tpp index ebec5a00..7a096eb9 100644 --- a/src/buildtool/storage/local_cas.tpp +++ b/src/buildtool/storage/local_cas.tpp @@ -23,6 +23,7 @@ #include "fmt/core.h" #include "src/buildtool/common/artifact_digest_factory.hpp" #include "src/buildtool/common/bazel_types.hpp" +#include "src/buildtool/file_system/git_repo.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/storage/local_cas.hpp" diff --git a/src/buildtool/storage/repository_garbage_collector.cpp b/src/buildtool/storage/repository_garbage_collector.cpp index 67a08f9f..6e4a2609 100644 --- a/src/buildtool/storage/repository_garbage_collector.cpp +++ b/src/buildtool/storage/repository_garbage_collector.cpp @@ -14,6 +14,9 @@ #include "src/buildtool/storage/repository_garbage_collector.hpp" +#include <cstddef> +#include <string> + #include "src/buildtool/execution_api/common/execution_common.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/logging/log_level.hpp" diff --git a/src/buildtool/storage/storage.hpp b/src/buildtool/storage/storage.hpp index 2a848925..c6c469a2 100644 --- a/src/buildtool/storage/storage.hpp +++ b/src/buildtool/storage/storage.hpp @@ -19,13 +19,13 @@ #include <memory> #include "gsl/gsl" -#include "src/buildtool/common/artifact.hpp" -#include "src/buildtool/execution_api/common/execution_common.hpp" +#include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/storage/config.hpp" #include "src/buildtool/storage/local_ac.hpp" #include "src/buildtool/storage/local_cas.hpp" #include "src/buildtool/storage/target_cache.hpp" #include "src/buildtool/storage/uplinker.hpp" +#include "src/utils/cpp/gsl.hpp" /// \brief The local storage for accessing CAS and caches. /// Maintains an instance of LocalCAS, LocalAC, TargetCache. Supports global diff --git a/src/buildtool/storage/target_cache_entry.cpp b/src/buildtool/storage/target_cache_entry.cpp index 263993c8..45556954 100644 --- a/src/buildtool/storage/target_cache_entry.cpp +++ b/src/buildtool/storage/target_cache_entry.cpp @@ -17,11 +17,14 @@ #include <algorithm> #include <exception> #include <iterator> +#include <memory> #include <string> #include <vector> +#include "src/buildtool/build_engine/expression/expression_ptr.hpp" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/artifact_digest_factory.hpp" +#include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" #include "src/utils/cpp/expected.hpp" diff --git a/src/buildtool/storage/target_cache_entry.hpp b/src/buildtool/storage/target_cache_entry.hpp index a1cddf62..98d66d33 100644 --- a/src/buildtool/storage/target_cache_entry.hpp +++ b/src/buildtool/storage/target_cache_entry.hpp @@ -17,6 +17,7 @@ #include <optional> #include <set> +#include <string> #include <unordered_map> #include <utility> #include <vector> diff --git a/src/buildtool/storage/target_cache_key.hpp b/src/buildtool/storage/target_cache_key.hpp index f4dc0586..79ba0022 100644 --- a/src/buildtool/storage/target_cache_key.hpp +++ b/src/buildtool/storage/target_cache_key.hpp @@ -15,6 +15,8 @@ #ifndef INCLUDED_SRC_BUILDTOOL_STORAGE_TARGET_CACHE_KEY_HPP #define INCLUDED_SRC_BUILDTOOL_STORAGE_TARGET_CACHE_KEY_HPP +#include <cstddef> +#include <functional> #include <utility> #include "src/buildtool/common/artifact.hpp" diff --git a/src/buildtool/storage/uplinker.cpp b/src/buildtool/storage/uplinker.cpp index 8b3b8c06..2b9a60b8 100644 --- a/src/buildtool/storage/uplinker.cpp +++ b/src/buildtool/storage/uplinker.cpp @@ -20,11 +20,9 @@ #include <cstddef> #include "src/buildtool/file_system/object_type.hpp" -#include "src/buildtool/storage/local_ac.hpp" -#include "src/buildtool/storage/local_cas.hpp" #include "src/buildtool/storage/storage.hpp" #include "src/buildtool/storage/target_cache.hpp" -#include "src/buildtool/storage/target_cache_entry.hpp" +#include "src/buildtool/storage/target_cache_key.hpp" namespace { [[nodiscard]] auto CreateGenerations( @@ -45,6 +43,8 @@ GlobalUplinker::GlobalUplinker( : storage_config_{*storage_config}, generations_{CreateGenerations(&storage_config_)} {} +GlobalUplinker::~GlobalUplinker() = default; + auto GlobalUplinker::UplinkBlob(ArtifactDigest const& digest, bool is_executable) const noexcept -> bool { // Try to find blob in all generations. diff --git a/src/buildtool/storage/uplinker.hpp b/src/buildtool/storage/uplinker.hpp index 353caac6..945ae337 100644 --- a/src/buildtool/storage/uplinker.hpp +++ b/src/buildtool/storage/uplinker.hpp @@ -25,7 +25,7 @@ #include "src/buildtool/storage/config.hpp" template <bool> -class LocalStorage; +class LocalStorage; // IWYU pragma: keep class TargetCacheKey; /// \brief Global uplinker implementation. @@ -35,6 +35,11 @@ class GlobalUplinker final { public: explicit GlobalUplinker( gsl::not_null<StorageConfig const*> const& storage_config) noexcept; + GlobalUplinker(GlobalUplinker const&) = default; + GlobalUplinker(GlobalUplinker&&) noexcept = default; + auto operator=(GlobalUplinker const&) = delete; + auto operator=(GlobalUplinker&&) noexcept = delete; + ~GlobalUplinker(); /// \brief Uplink blob across LocalCASes from all generations to latest. /// Note that blobs will NOT be synced between file/executable CAS. |