summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/common/artifact_digest.hpp9
-rw-r--r--src/buildtool/execution_api/common/TARGETS1
-rw-r--r--src/buildtool/execution_api/common/blob_tree.hpp4
-rw-r--r--src/buildtool/execution_api/execution_service/cas_server.cpp4
-rw-r--r--src/buildtool/execution_api/local/local_api.hpp11
-rw-r--r--src/buildtool/execution_engine/executor/executor.hpp3
6 files changed, 12 insertions, 20 deletions
diff --git a/src/buildtool/common/artifact_digest.hpp b/src/buildtool/common/artifact_digest.hpp
index 6b9ecb88..987e654a 100644
--- a/src/buildtool/common/artifact_digest.hpp
+++ b/src/buildtool/common/artifact_digest.hpp
@@ -32,9 +32,7 @@
// unprefixed hex string as hash. For communication with the execution API it
// can be cast to bazel_re::Digest which is the wire format that contains
// prefixed hashes in native mode.
-class ArtifactDigest {
- friend struct std::hash<ArtifactDigest>;
-
+class ArtifactDigest final {
public:
ArtifactDigest() noexcept = default;
@@ -63,6 +61,7 @@ class ArtifactDigest {
}
[[nodiscard]] auto size() const noexcept -> std::size_t { return size_; }
+ [[nodiscard]] auto IsTree() const noexcept -> bool { return is_tree_; }
// NOLINTNEXTLINE allow implicit casts
[[nodiscard]] operator bazel_re::Digest() const {
@@ -134,8 +133,8 @@ struct hash<ArtifactDigest> {
[[nodiscard]] auto operator()(ArtifactDigest const& digest) const noexcept
-> std::size_t {
std::size_t seed{};
- hash_combine(&seed, digest.hash_);
- hash_combine(&seed, digest.is_tree_);
+ hash_combine(&seed, digest.hash());
+ hash_combine(&seed, digest.IsTree());
return seed;
}
};
diff --git a/src/buildtool/execution_api/common/TARGETS b/src/buildtool/execution_api/common/TARGETS
index 7d1b5ebe..57394424 100644
--- a/src/buildtool/execution_api/common/TARGETS
+++ b/src/buildtool/execution_api/common/TARGETS
@@ -89,7 +89,6 @@
[ "common"
, ["src/buildtool/execution_api/bazel_msg", "directory_tree"]
, ["@", "gsl", "", "gsl"]
- , ["src/buildtool/compatibility", "compatibility"]
]
, "private-deps":
[ ["src/buildtool/file_system", "git_repo"]
diff --git a/src/buildtool/execution_api/common/blob_tree.hpp b/src/buildtool/execution_api/common/blob_tree.hpp
index 25d0f560..051b0fe2 100644
--- a/src/buildtool/execution_api/common/blob_tree.hpp
+++ b/src/buildtool/execution_api/common/blob_tree.hpp
@@ -22,7 +22,6 @@
#include <vector>
#include "gsl/gsl"
-#include "src/buildtool/compatibility/native_support.hpp"
#include "src/buildtool/execution_api/bazel_msg/directory_tree.hpp"
#include "src/buildtool/execution_api/common/artifact_blob_container.hpp"
@@ -38,8 +37,7 @@ class BlobTree {
[[nodiscard]] auto Blob() const noexcept -> ArtifactBlob { return blob_; }
[[nodiscard]] auto IsTree() const noexcept -> bool {
- return NativeSupport::IsTree(
- static_cast<bazel_re::Digest>(blob_.digest).hash());
+ return blob_.digest.IsTree();
}
/// \brief Create a `BlobTree` from a `DirectoryTree`.
diff --git a/src/buildtool/execution_api/execution_service/cas_server.cpp b/src/buildtool/execution_api/execution_service/cas_server.cpp
index 9960dc96..a2a37e37 100644
--- a/src/buildtool/execution_api/execution_service/cas_server.cpp
+++ b/src/buildtool/execution_api/execution_service/cas_server.cpp
@@ -103,7 +103,7 @@ auto CASServiceImpl::FindMissingBlobs(
logger_.Emit(LogLevel::Trace, "FindMissingBlobs: {}", hash);
ArtifactDigest const digest(x);
is_in_cas =
- NativeSupport::IsTree(hash)
+ digest.IsTree()
? storage_.CAS().TreePath(digest).has_value()
: storage_.CAS().BlobPath(digest, false).has_value();
}
@@ -200,7 +200,7 @@ auto CASServiceImpl::BatchReadBlobs(
ArtifactDigest const digest(x);
auto const path =
- NativeSupport::IsTree(x.hash())
+ digest.IsTree()
? storage_.CAS().TreePath(digest)
: storage_.CAS().BlobPath(digest, /*is_executable=*/false);
diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp
index eadf45b7..59dc1880 100644
--- a/src/buildtool/execution_api/local/local_api.hpp
+++ b/src/buildtool/execution_api/local/local_api.hpp
@@ -33,7 +33,6 @@
#include "src/buildtool/common/artifact_digest.hpp"
#include "src/buildtool/common/repository_config.hpp"
#include "src/buildtool/compatibility/compatibility.hpp"
-#include "src/buildtool/compatibility/native_support.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp"
#include "src/buildtool/execution_api/common/artifact_blob_container.hpp"
#include "src/buildtool/execution_api/common/blob_tree.hpp"
@@ -262,8 +261,7 @@ class LocalApi final : public IExecutionApi {
bool /*skip_find_missing*/) const noexcept
-> bool final {
for (auto const& blob : blobs.Blobs()) {
- auto const is_tree = NativeSupport::IsTree(
- static_cast<bazel_re::Digest>(blob.digest).hash());
+ auto const is_tree = blob.digest.IsTree();
auto cas_digest =
is_tree ? local_context_.storage->CAS().StoreTree(*blob.data)
: local_context_.storage->CAS().StoreBlob(*blob.data,
@@ -308,7 +306,7 @@ class LocalApi final : public IExecutionApi {
[[nodiscard]] auto IsAvailable(ArtifactDigest const& digest) const noexcept
-> bool final {
return static_cast<bool>(
- NativeSupport::IsTree(static_cast<bazel_re::Digest>(digest).hash())
+ digest.IsTree()
? local_context_.storage->CAS().TreePath(digest)
: local_context_.storage->CAS().BlobPath(digest, false));
}
@@ -317,9 +315,8 @@ class LocalApi final : public IExecutionApi {
const noexcept -> std::vector<ArtifactDigest> final {
std::vector<ArtifactDigest> result;
for (auto const& digest : digests) {
- auto const& path =
- NativeSupport::IsTree(
- static_cast<bazel_re::Digest>(digest).hash())
+ auto const path =
+ digest.IsTree()
? local_context_.storage->CAS().TreePath(digest)
: local_context_.storage->CAS().BlobPath(digest, false);
if (not path) {
diff --git a/src/buildtool/execution_engine/executor/executor.hpp b/src/buildtool/execution_engine/executor/executor.hpp
index 26e415b1..ad2fefea 100644
--- a/src/buildtool/execution_engine/executor/executor.hpp
+++ b/src/buildtool/execution_engine/executor/executor.hpp
@@ -351,8 +351,7 @@ class ExecutorImpl {
Artifact::ObjectInfo const& info,
std::string const& hash) noexcept -> bool {
std::optional<std::string> content;
- if (NativeSupport::IsTree(
- static_cast<bazel_re::Digest>(info.digest).hash())) {
+ if (info.digest.IsTree()) {
// if known tree is not available, recursively upload its content
auto tree = ReadGitTree(repo, repo_config, hash);
if (not tree) {