summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/local/local_api.hpp
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2022-10-06 12:18:25 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2022-10-07 13:30:06 +0200
commit51f8b186803292f111011d04d5291deb374dc34c (patch)
tree818606bb46be19cc56618f1d56eb5e3f309f4fae /src/buildtool/execution_api/local/local_api.hpp
parent64b8da270611ebb997c3801f09bd06878aee026a (diff)
downloadjustbuild-51f8b186803292f111011d04d5291deb374dc34c.tar.gz
LocalTreeMap: Prevent tree objects from being stored
... to align with the original idea of caching a flat list of blob objects, without the need to recursively traverse any trees. Consequently, we cannot create any map entry in places where we do not have all sub-tree entries at hand (e.g., LocalAPI, BazelAPI, BazelResponse).
Diffstat (limited to 'src/buildtool/execution_api/local/local_api.hpp')
-rw-r--r--src/buildtool/execution_api/local/local_api.hpp15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp
index 38b98601..13bcb7e3 100644
--- a/src/buildtool/execution_api/local/local_api.hpp
+++ b/src/buildtool/execution_api/local/local_api.hpp
@@ -10,7 +10,6 @@
#include "src/buildtool/compatibility/native_support.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_blob.hpp"
#include "src/buildtool/execution_api/common/execution_api.hpp"
-#include "src/buildtool/execution_api/common/local_tree_map.hpp"
#include "src/buildtool/execution_api/local/local_action.hpp"
#include "src/buildtool/execution_api/local/local_storage.hpp"
@@ -26,7 +25,6 @@ class LocalApi final : public IExecutionApi {
std::map<std::string, std::string> const& properties) noexcept
-> IExecutionAction::Ptr final {
return IExecutionAction::Ptr{new LocalAction{storage_,
- tree_map_,
root_digest,
command,
output_files,
@@ -202,11 +200,9 @@ class LocalApi final : public IExecutionApi {
std::vector<DependencyGraph::NamedArtifactNodePtr> const&
artifacts) noexcept -> std::optional<ArtifactDigest> final {
BlobContainer blobs{};
- auto tree = tree_map_->CreateTree();
auto digest = BazelMsgFactory::CreateDirectoryDigestFromTree(
artifacts,
- [&blobs](BazelBlob&& blob) { blobs.Emplace(std::move(blob)); },
- [&tree](auto path, auto info) { return tree.AddInfo(path, info); });
+ [&blobs](BazelBlob&& blob) { blobs.Emplace(std::move(blob)); });
if (not digest) {
Logger::Log(LogLevel::Debug, "failed to create digest for tree.");
return std::nullopt;
@@ -217,10 +213,7 @@ class LocalApi final : public IExecutionApi {
return std::nullopt;
}
- if (tree_map_->AddTree(*digest, std::move(tree))) {
- return ArtifactDigest{*digest};
- }
- return std::nullopt;
+ return ArtifactDigest{*digest};
}
[[nodiscard]] auto IsAvailable(ArtifactDigest const& digest) const noexcept
@@ -247,9 +240,7 @@ class LocalApi final : public IExecutionApi {
}
private:
- std::shared_ptr<LocalTreeMap> tree_map_{std::make_shared<LocalTreeMap>()};
- std::shared_ptr<LocalStorage> storage_{
- std::make_shared<LocalStorage>(tree_map_)};
+ std::shared_ptr<LocalStorage> storage_{std::make_shared<LocalStorage>()};
};
#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_LOCAL_LOCAL_API_HPP