summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2025-02-14 14:24:36 +0100
committerMaksim Denisov <denisov.maksim@huawei.com>2025-02-19 17:50:30 +0100
commitdfa481bd5f97d92c444dc31a4a051cb890494d1d (patch)
treea1448b18336ec246daa5daad0f6973757406b9c4 /src
parent56df7b3916f669edd315808f92e63e7553367f1d (diff)
downloadjustbuild-dfa481bd5f97d92c444dc31a4a051cb890494d1d.tar.gz
IExecutionApi: Return supported HashFunction::Type
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/execution_api/common/execution_api.hpp4
-rw-r--r--src/buildtool/execution_api/local/local_api.cpp5
-rw-r--r--src/buildtool/execution_api/local/local_api.hpp3
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.cpp5
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.hpp2
-rw-r--r--src/buildtool/execution_api/serve/TARGETS1
-rw-r--r--src/buildtool/execution_api/serve/mr_local_api.cpp5
-rw-r--r--src/buildtool/execution_api/serve/mr_local_api.hpp3
8 files changed, 27 insertions, 1 deletions
diff --git a/src/buildtool/execution_api/common/execution_api.hpp b/src/buildtool/execution_api/common/execution_api.hpp
index 1a2a0771..c8415764 100644
--- a/src/buildtool/execution_api/common/execution_api.hpp
+++ b/src/buildtool/execution_api/common/execution_api.hpp
@@ -26,6 +26,7 @@
#include "src/buildtool/common/artifact.hpp" // Artifact::ObjectInfo
#include "src/buildtool/common/artifact_digest.hpp"
+#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/execution_api/common/artifact_blob.hpp"
#include "src/buildtool/execution_api/common/execution_action.hpp"
#include "src/buildtool/execution_engine/dag/dag.hpp"
@@ -152,6 +153,9 @@ class IExecutionApi {
[[nodiscard]] virtual auto BlobSpliceSupport() const noexcept -> bool {
return false;
}
+
+ [[nodiscard]] virtual auto GetHashType() const noexcept
+ -> HashFunction::Type = 0;
};
#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_EXECUTION_APIHPP
diff --git a/src/buildtool/execution_api/local/local_api.cpp b/src/buildtool/execution_api/local/local_api.cpp
index ae59d3bc..bd8a51b6 100644
--- a/src/buildtool/execution_api/local/local_api.cpp
+++ b/src/buildtool/execution_api/local/local_api.cpp
@@ -28,7 +28,6 @@
#include "src/buildtool/common/artifact_digest_factory.hpp"
#include "src/buildtool/common/protocol_traits.hpp"
-#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/execution_api/bazel_msg/directory_tree.hpp"
#include "src/buildtool/execution_api/common/common_api.hpp"
#include "src/buildtool/execution_api/common/stream_dumper.hpp"
@@ -342,3 +341,7 @@ auto LocalApi::SpliceBlob(ArtifactDigest const& blob_digest,
}
return *std::move(splice_result);
}
+
+auto LocalApi::GetHashType() const noexcept -> HashFunction::Type {
+ return local_context_.storage_config->hash_function.GetType();
+}
diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp
index 853b0622..c1e91c12 100644
--- a/src/buildtool/execution_api/local/local_api.hpp
+++ b/src/buildtool/execution_api/local/local_api.hpp
@@ -26,6 +26,7 @@
#include "src/buildtool/common/artifact.hpp"
#include "src/buildtool/common/artifact_digest.hpp"
#include "src/buildtool/common/repository_config.hpp"
+#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/execution_api/common/artifact_blob.hpp"
#include "src/buildtool/execution_api/common/execution_action.hpp"
#include "src/buildtool/execution_api/common/execution_api.hpp"
@@ -102,6 +103,8 @@ class LocalApi final : public IExecutionApi {
return true;
}
+ [[nodiscard]] auto GetHashType() const noexcept -> HashFunction::Type final;
+
private:
LocalContext const& local_context_;
std::optional<GitApi> const git_api_;
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
index 2dfe07de..5511fcb1 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
@@ -603,3 +603,8 @@ auto BazelApi::CreateAction(
[[nodiscard]] auto BazelApi::BlobSpliceSupport() const noexcept -> bool {
return network_->BlobSpliceSupport();
}
+
+[[nodiscard]] auto BazelApi::GetHashType() const noexcept
+ -> HashFunction::Type {
+ return network_->GetHashFunction().GetType();
+}
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.hpp b/src/buildtool/execution_api/remote/bazel/bazel_api.hpp
index 53445385..21e24c52 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.hpp
@@ -122,6 +122,8 @@ class BazelApi final : public IExecutionApi {
[[nodiscard]] auto BlobSpliceSupport() const noexcept -> bool final;
+ [[nodiscard]] auto GetHashType() const noexcept -> HashFunction::Type final;
+
private:
std::shared_ptr<BazelNetwork> network_;
diff --git a/src/buildtool/execution_api/serve/TARGETS b/src/buildtool/execution_api/serve/TARGETS
index cdf40c43..3e7777fd 100644
--- a/src/buildtool/execution_api/serve/TARGETS
+++ b/src/buildtool/execution_api/serve/TARGETS
@@ -27,6 +27,7 @@
, "deps":
[ ["@", "gsl", "", "gsl"]
, ["src/buildtool/common", "common"]
+ , ["src/buildtool/crypto", "hash_function"]
, ["src/buildtool/execution_api/common", "artifact_blob"]
, ["src/buildtool/execution_api/common", "common"]
, ["src/buildtool/execution_api/local", "context"]
diff --git a/src/buildtool/execution_api/serve/mr_local_api.cpp b/src/buildtool/execution_api/serve/mr_local_api.cpp
index d9364a4e..3394c270 100644
--- a/src/buildtool/execution_api/serve/mr_local_api.cpp
+++ b/src/buildtool/execution_api/serve/mr_local_api.cpp
@@ -147,3 +147,8 @@ auto MRLocalApi::GetMissingDigests(
}
return compat_local_api_->GetMissingDigests(digests);
}
+
+auto MRLocalApi::GetHashType() const noexcept -> HashFunction::Type {
+ return compat_local_api_ == nullptr ? native_local_api_->GetHashType()
+ : compat_local_api_->GetHashType();
+}
diff --git a/src/buildtool/execution_api/serve/mr_local_api.hpp b/src/buildtool/execution_api/serve/mr_local_api.hpp
index 815ad662..11a3cbb2 100644
--- a/src/buildtool/execution_api/serve/mr_local_api.hpp
+++ b/src/buildtool/execution_api/serve/mr_local_api.hpp
@@ -25,6 +25,7 @@
#include "gsl/gsl"
#include "src/buildtool/common/artifact.hpp"
#include "src/buildtool/common/artifact_digest.hpp"
+#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/execution_api/common/artifact_blob.hpp"
#include "src/buildtool/execution_api/common/execution_action.hpp"
#include "src/buildtool/execution_api/common/execution_api.hpp"
@@ -130,6 +131,8 @@ class MRLocalApi final : public IExecutionApi {
std::unordered_set<ArtifactDigest> const& digests) const noexcept
-> std::unordered_set<ArtifactDigest> final;
+ [[nodiscard]] auto GetHashType() const noexcept -> HashFunction::Type final;
+
private:
// retain local context references to have direct access to storages
gsl::not_null<LocalContext const*> native_context_;