summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/execution_api/bazel_msg/TARGETS4
-rw-r--r--src/buildtool/execution_api/bazel_msg/bazel_blob.hpp16
-rw-r--r--src/buildtool/execution_api/common/TARGETS7
-rw-r--r--src/buildtool/execution_api/common/content_blob_container.hpp (renamed from src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp)52
-rw-r--r--src/buildtool/execution_api/common/execution_api.hpp2
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_action.cpp2
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.cpp1
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp2
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_network.hpp3
-rw-r--r--src/buildtool/graph_traverser/graph_traverser.hpp2
10 files changed, 50 insertions, 41 deletions
diff --git a/src/buildtool/execution_api/bazel_msg/TARGETS b/src/buildtool/execution_api/bazel_msg/TARGETS
index 1ef91526..6b094ece 100644
--- a/src/buildtool/execution_api/bazel_msg/TARGETS
+++ b/src/buildtool/execution_api/bazel_msg/TARGETS
@@ -1,12 +1,12 @@
{ "bazel_msg":
{ "type": ["@", "rules", "CC", "library"]
, "name": ["bazel_msg"]
- , "hdrs": ["bazel_blob.hpp", "bazel_blob_container.hpp", "bazel_common.hpp"]
+ , "hdrs": ["bazel_blob.hpp", "bazel_common.hpp"]
, "deps":
[ ["src/buildtool/common", "common"]
, ["src/buildtool/file_system", "file_system_manager"]
, ["src/buildtool/common", "bazel_types"]
- , ["src/utils/cpp", "transformed_range"]
+ , ["src/buildtool/execution_api/common", "content_blob_container"]
]
, "stage": ["src", "buildtool", "execution_api", "bazel_msg"]
, "private-deps":
diff --git a/src/buildtool/execution_api/bazel_msg/bazel_blob.hpp b/src/buildtool/execution_api/bazel_msg/bazel_blob.hpp
index 75f174b5..bac9d273 100644
--- a/src/buildtool/execution_api/bazel_msg/bazel_blob.hpp
+++ b/src/buildtool/execution_api/bazel_msg/bazel_blob.hpp
@@ -15,20 +15,10 @@
#ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_BAZEL_MSG_BAZEL_BLOB_HPP
#define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_BAZEL_MSG_BAZEL_BLOB_HPP
-#include <string>
-#include <utility> // std::move
-
#include "src/buildtool/common/bazel_types.hpp"
+#include "src/buildtool/execution_api/common/content_blob_container.hpp"
-struct BazelBlob {
- BazelBlob(bazel_re::Digest mydigest, std::string mydata, bool is_exec)
- : digest{std::move(mydigest)},
- data{std::move(mydata)},
- is_exec{is_exec} {}
-
- bazel_re::Digest digest{};
- std::string data{};
- bool is_exec{}; // optional: hint to put the blob in executable CAS
-};
+using BazelBlob = ContentBlob<bazel_re::Digest>;
+using BlobContainer = ContentBlobContainer<bazel_re::Digest>;
#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_BAZEL_MSG_BAZEL_BLOB_HPP
diff --git a/src/buildtool/execution_api/common/TARGETS b/src/buildtool/execution_api/common/TARGETS
index 825f612f..4cb4e4b2 100644
--- a/src/buildtool/execution_api/common/TARGETS
+++ b/src/buildtool/execution_api/common/TARGETS
@@ -71,4 +71,11 @@
, ["src/buildtool/logging", "log_level"]
]
}
+, "content_blob_container":
+ { "type": ["@", "rules", "CC", "library"]
+ , "name": ["content_blob_container"]
+ , "hdrs": ["content_blob_container.hpp"]
+ , "stage": ["src", "buildtool", "execution_api", "common"]
+ , "deps": [["src/utils/cpp", "transformed_range"]]
+ }
}
diff --git a/src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp b/src/buildtool/execution_api/common/content_blob_container.hpp
index 07c78550..fcd10f09 100644
--- a/src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp
+++ b/src/buildtool/execution_api/common/content_blob_container.hpp
@@ -1,4 +1,4 @@
-// Copyright 2022 Huawei Cloud Computing Technology Co., Ltd.
+// Copyright 2024 Huawei Cloud Computing Technology Co., Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,25 +12,37 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_BAZEL_MSG_BAZEL_BLOB_CONTAINER_HPP
-#define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_BAZEL_MSG_BAZEL_BLOB_CONTAINER_HPP
+#ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_CONTENT_BLOB_CONTAINER_HPP
+#define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_CONTENT_BLOB_CONTAINER_HPP
#include <cstddef>
+#include <string>
#include <unordered_map>
-#include <utility> // std::pair via auto
+#include <utility> //std::move
#include <vector>
-#include "src/buildtool/execution_api/bazel_msg/bazel_blob.hpp"
#include "src/utils/cpp/transformed_range.hpp"
-/// \brief Container for Blobs
-/// Can be used to iterate over digests or subset of blobs with certain digest.
-class BlobContainer {
- using underlaying_map_t = std::unordered_map<bazel_re::Digest, BazelBlob>;
+template <typename TDigest>
+struct ContentBlob final {
+ ContentBlob(TDigest mydigest, std::string mydata, bool is_exec) noexcept
+ : digest{std::move(mydigest)},
+ data{std::move(mydata)},
+ is_exec{is_exec} {}
+ TDigest digest{};
+ std::string data{};
+ bool is_exec{};
+};
+
+template <typename TDigest>
+class ContentBlobContainer final {
public:
- BlobContainer() noexcept = default;
- explicit BlobContainer(std::vector<BazelBlob> blobs) {
+ using DigestType = TDigest;
+ using BlobType = ContentBlob<TDigest>;
+
+ ContentBlobContainer() noexcept = default;
+ explicit ContentBlobContainer(std::vector<BlobType> blobs) {
blobs_.reserve(blobs.size());
for (auto& blob : blobs) {
this->Emplace(std::move(blob));
@@ -38,8 +50,8 @@ class BlobContainer {
}
/// \brief Emplace new BazelBlob to container.
- void Emplace(BazelBlob&& blob) {
- bazel_re::Digest digest = blob.digest;
+ void Emplace(BlobType&& blob) {
+ DigestType digest = blob.digest;
blobs_.emplace(std::move(digest), std::move(blob));
}
@@ -53,13 +65,13 @@ class BlobContainer {
/// \brief Is equivalent BazelBlob (with same Digest) in container.
/// \param[in] blob BazelBlob to search equivalent BazelBlob for
- [[nodiscard]] auto Contains(BazelBlob const& blob) const noexcept -> bool {
+ [[nodiscard]] auto Contains(BlobType const& blob) const noexcept -> bool {
return blobs_.contains(blob.digest);
}
/// \brief Obtain iterable list of Blobs from container.
[[nodiscard]] auto Blobs() const noexcept {
- auto converter = [](auto const& p) -> BazelBlob const& {
+ auto converter = [](auto const& p) -> BlobType const& {
return p.second;
};
return TransformedRange{
@@ -68,7 +80,7 @@ class BlobContainer {
/// \brief Obtain iterable list of Digests from container.
[[nodiscard]] auto Digests() const noexcept {
- auto converter = [](auto const& p) -> bazel_re::Digest const& {
+ auto converter = [](auto const& p) -> DigestType const& {
return p.first;
};
return TransformedRange{
@@ -78,8 +90,8 @@ class BlobContainer {
/// \brief Obtain iterable list of BazelBlobs related to Digests.
/// \param[in] related Related Digests
[[nodiscard]] auto RelatedBlobs(
- std::vector<bazel_re::Digest> const& related) const noexcept {
- auto converter = [this](auto const& digest) -> BazelBlob const& {
+ std::vector<DigestType> const& related) const noexcept {
+ auto converter = [this](auto const& digest) -> BlobType const& {
return blobs_.at(digest);
};
return TransformedRange{
@@ -87,7 +99,7 @@ class BlobContainer {
};
private:
- underlaying_map_t blobs_{};
+ std::unordered_map<DigestType, BlobType> blobs_{};
};
-#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_BAZEL_MSG_BAZEL_BLOB_CONTAINER_HPP
+#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_CONTENT_BLOB_CONTAINER_HPP
diff --git a/src/buildtool/execution_api/common/execution_api.hpp b/src/buildtool/execution_api/common/execution_api.hpp
index 7b0ad32a..4a40c64e 100644
--- a/src/buildtool/execution_api/common/execution_api.hpp
+++ b/src/buildtool/execution_api/common/execution_api.hpp
@@ -26,7 +26,7 @@
#include "gsl/gsl"
#include "src/buildtool/common/artifact.hpp" // Artifact::ObjectInfo
#include "src/buildtool/common/artifact_digest.hpp"
-#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp"
+#include "src/buildtool/execution_api/bazel_msg/bazel_blob.hpp"
#include "src/buildtool/execution_api/common/execution_action.hpp"
#include "src/buildtool/execution_engine/dag/dag.hpp"
#include "src/buildtool/file_system/object_type.hpp"
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_action.cpp b/src/buildtool/execution_api/remote/bazel/bazel_action.cpp
index 13342da0..7247b2c5 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_action.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_action.cpp
@@ -16,7 +16,7 @@
#include <utility> // std::move
-#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp"
+#include "src/buildtool/execution_api/bazel_msg/bazel_blob.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp"
#include "src/buildtool/execution_api/remote/bazel/bazel_response.hpp"
#include "src/buildtool/execution_api/utils/outputscheck.hpp"
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
index 0f1fdd04..042478c4 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
@@ -27,7 +27,6 @@
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/compatibility/compatibility.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_blob.hpp"
-#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_common.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp"
#include "src/buildtool/execution_api/common/common_api.hpp"
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp
index b2b80a48..8239107b 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp
@@ -27,7 +27,7 @@
#include "gsl/gsl"
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/common/remote/port.hpp"
-#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp"
+#include "src/buildtool/execution_api/bazel_msg/bazel_blob.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_common.hpp"
#include "src/buildtool/execution_api/remote/bazel/bytestream_client.hpp"
#include "src/buildtool/execution_api/remote/config.hpp"
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network.hpp b/src/buildtool/execution_api/remote/bazel/bazel_network.hpp
index 251662fa..2eb7a243 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_network.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_network.hpp
@@ -26,7 +26,8 @@
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/common/remote/port.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_blob.hpp"
-#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp"
+#include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp"
+#include "src/buildtool/execution_api/common/execution_api.hpp"
#include "src/buildtool/execution_api/remote/bazel/bazel_ac_client.hpp"
#include "src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp"
#include "src/buildtool/execution_api/remote/bazel/bazel_execution_client.hpp"
diff --git a/src/buildtool/graph_traverser/graph_traverser.hpp b/src/buildtool/graph_traverser/graph_traverser.hpp
index 51b59361..4b4a6ff5 100644
--- a/src/buildtool/graph_traverser/graph_traverser.hpp
+++ b/src/buildtool/graph_traverser/graph_traverser.hpp
@@ -36,7 +36,7 @@
#include "src/buildtool/common/repository_config.hpp"
#include "src/buildtool/common/statistics.hpp"
#include "src/buildtool/common/tree.hpp"
-#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp"
+#include "src/buildtool/execution_api/bazel_msg/bazel_blob.hpp"
#include "src/buildtool/execution_api/common/create_execution_api.hpp"
#include "src/buildtool/execution_api/local/local_api.hpp"
#include "src/buildtool/execution_api/remote/bazel/bazel_api.hpp"