summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/storage/TARGETS14
-rw-r--r--src/buildtool/storage/backend_description.cpp1
-rw-r--r--src/buildtool/storage/backend_description.hpp2
-rw-r--r--src/buildtool/storage/compactifier.cpp7
-rw-r--r--src/buildtool/storage/compactifier.hpp3
-rw-r--r--src/buildtool/storage/config.hpp4
-rw-r--r--src/buildtool/storage/fs_utils.cpp5
-rw-r--r--src/buildtool/storage/fs_utils.hpp1
-rw-r--r--src/buildtool/storage/garbage_collector.cpp6
-rw-r--r--src/buildtool/storage/garbage_collector.hpp3
-rw-r--r--src/buildtool/storage/large_object_cas.hpp2
-rw-r--r--src/buildtool/storage/local_ac.hpp7
-rw-r--r--src/buildtool/storage/local_cas.hpp5
-rw-r--r--src/buildtool/storage/local_cas.tpp1
-rw-r--r--src/buildtool/storage/repository_garbage_collector.cpp3
-rw-r--r--src/buildtool/storage/storage.hpp4
-rw-r--r--src/buildtool/storage/target_cache_entry.cpp3
-rw-r--r--src/buildtool/storage/target_cache_entry.hpp1
-rw-r--r--src/buildtool/storage/target_cache_key.hpp2
-rw-r--r--src/buildtool/storage/uplinker.cpp6
-rw-r--r--src/buildtool/storage/uplinker.hpp7
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.