summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/local/local_api.hpp
diff options
context:
space:
mode:
authorSascha Roloff <sascha.roloff@huawei.com>2022-07-08 10:04:34 +0200
committerSascha Roloff <sascha.roloff@huawei.com>2022-08-05 14:41:31 +0200
commitbb2375008f69bf62d510ce862f1d4370fa130ef3 (patch)
treeaa757c0eec0455782cb764ce09c46adc8ef250cf /src/buildtool/execution_api/local/local_api.hpp
parent30c5aa0b3dc37c784311a905f120e0e8b1f651fd (diff)
downloadjustbuild-bb2375008f69bf62d510ce862f1d4370fa130ef3.tar.gz
Introduced batch availability check for remote execution api
Diffstat (limited to 'src/buildtool/execution_api/local/local_api.hpp')
-rw-r--r--src/buildtool/execution_api/local/local_api.hpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp
index 20886e5a..72b7e28c 100644
--- a/src/buildtool/execution_api/local/local_api.hpp
+++ b/src/buildtool/execution_api/local/local_api.hpp
@@ -150,6 +150,17 @@ class LocalApi final : public IExecutionApi {
return storage_->BlobPath(digest, false).has_value();
}
+ [[nodiscard]] auto IsAvailable(std::vector<ArtifactDigest> const& digests)
+ const noexcept -> std::vector<ArtifactDigest> final {
+ std::vector<ArtifactDigest> result;
+ for (auto const& digest : digests) {
+ if (not storage_->BlobPath(digest, false).has_value()) {
+ result.push_back(digest);
+ }
+ }
+ return result;
+ }
+
private:
std::shared_ptr<LocalTreeMap> tree_map_{std::make_shared<LocalTreeMap>()};
std::shared_ptr<LocalStorage> storage_{