diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2025-01-29 17:04:05 +0100 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2025-02-07 14:58:04 +0100 |
commit | 5eb04ac36577b8eab29c24b311852aa05b2fcdff (patch) | |
tree | fbf6c567d12e51f56e1ed2774d8167712f0b89fd /src | |
parent | 2ce9018150d71931853f1bec4f516432ff558186 (diff) | |
download | justbuild-5eb04ac36577b8eab29c24b311852aa05b2fcdff.tar.gz |
Move implementation of ContentBlob to artifact_blob
...and remove ContentBlob.
Diffstat (limited to 'src')
12 files changed, 49 insertions, 85 deletions
diff --git a/src/buildtool/execution_api/bazel_msg/TARGETS b/src/buildtool/execution_api/bazel_msg/TARGETS index 0e857331..ed09c03b 100644 --- a/src/buildtool/execution_api/bazel_msg/TARGETS +++ b/src/buildtool/execution_api/bazel_msg/TARGETS @@ -27,7 +27,6 @@ [ ["@", "fmt", "", "fmt"] , ["@", "protoc", "", "libprotobuf"] , ["src/buildtool/common", "artifact_digest_factory"] - , ["src/buildtool/execution_api/common", "content_blob_container"] , ["src/buildtool/file_system", "file_system_manager"] , ["src/buildtool/file_system", "git_repo"] , ["src/utils/cpp", "hex_string"] diff --git a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp index 30a1a31a..d35b041f 100644 --- a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp +++ b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp @@ -30,7 +30,6 @@ #include "google/protobuf/duration.pb.h" #include "google/protobuf/repeated_ptr_field.h" #include "src/buildtool/common/artifact_digest_factory.hpp" -#include "src/buildtool/execution_api/common/content_blob_container.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/file_system/git_repo.hpp" #include "src/utils/cpp/hex_string.hpp" diff --git a/src/buildtool/execution_api/common/TARGETS b/src/buildtool/execution_api/common/TARGETS index c6fa78b9..b642c0ff 100644 --- a/src/buildtool/execution_api/common/TARGETS +++ b/src/buildtool/execution_api/common/TARGETS @@ -101,8 +101,7 @@ ] , "stage": ["src", "buildtool", "execution_api", "common"] , "private-deps": - [ "content_blob_container" - , "message_limits" + [ "message_limits" , ["@", "fmt", "", "fmt"] , ["src/buildtool/file_system", "object_type"] , ["src/buildtool/logging", "log_level"] @@ -129,18 +128,15 @@ ] , "stage": ["src", "buildtool", "execution_api", "common"] } -, "content_blob_container": - { "type": ["@", "rules", "CC", "library"] - , "name": ["content_blob_container"] - , "hdrs": ["content_blob_container.hpp"] - , "deps": [["@", "gsl", "", "gsl"], ["src/utils/cpp", "hash_combine"]] - , "stage": ["src", "buildtool", "execution_api", "common"] - } , "artifact_blob": { "type": ["@", "rules", "CC", "library"] , "name": ["artifact_blob"] , "hdrs": ["artifact_blob.hpp"] - , "deps": ["content_blob_container", ["src/buildtool/common", "common"]] + , "deps": + [ ["@", "gsl", "", "gsl"] + , ["src/buildtool/common", "common"] + , ["src/utils/cpp", "hash_combine"] + ] , "stage": ["src", "buildtool", "execution_api", "common"] } } diff --git a/src/buildtool/execution_api/common/artifact_blob.hpp b/src/buildtool/execution_api/common/artifact_blob.hpp index 5e113123..b1e8980a 100644 --- a/src/buildtool/execution_api/common/artifact_blob.hpp +++ b/src/buildtool/execution_api/common/artifact_blob.hpp @@ -15,9 +15,50 @@ #ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_ARTIFACT_BLOB_HPP #define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_ARTIFACT_BLOB_HPP +#include <cstddef> +#include <functional> +#include <memory> +#include <string> +#include <utility> //std::move + +#include "gsl/gsl" #include "src/buildtool/common/artifact_digest.hpp" -#include "src/buildtool/execution_api/common/content_blob_container.hpp" +#include "src/utils/cpp/hash_combine.hpp" + +struct ArtifactBlob final { + ArtifactBlob(ArtifactDigest digest, + std::string mydata, + bool is_exec) noexcept + : digest{std::move(digest)}, + data{std::make_shared<std::string>(std::move(mydata))}, + is_exec{is_exec} {} + + ArtifactBlob(ArtifactDigest digest, + gsl::not_null<std::shared_ptr<std::string>> const& mydata, + bool is_exec) noexcept + : digest{std::move(digest)}, data(mydata), is_exec{is_exec} {} + + [[nodiscard]] auto operator==(ArtifactBlob const& other) const noexcept + -> bool { + return digest == other.digest and is_exec == other.is_exec; + } + + ArtifactDigest digest; + std::shared_ptr<std::string> data; + bool is_exec = false; +}; -using ArtifactBlob = ContentBlob<ArtifactDigest>; +namespace std { +template <> +struct hash<ArtifactBlob> { + [[nodiscard]] auto operator()(ArtifactBlob const& blob) const noexcept + -> std::size_t { + std::size_t seed{}; + hash_combine(&seed, blob.digest); + hash_combine(&seed, blob.is_exec); + return seed; + } +}; +} // namespace std #endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_ARTIFACT_BLOB_HPP diff --git a/src/buildtool/execution_api/common/common_api.cpp b/src/buildtool/execution_api/common/common_api.cpp index 3a713fc4..69cd86fb 100644 --- a/src/buildtool/execution_api/common/common_api.cpp +++ b/src/buildtool/execution_api/common/common_api.cpp @@ -28,7 +28,6 @@ #include <utility> #include "fmt/core.h" -#include "src/buildtool/execution_api/common/content_blob_container.hpp" #include "src/buildtool/execution_api/common/message_limits.hpp" #include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" diff --git a/src/buildtool/execution_api/common/content_blob_container.hpp b/src/buildtool/execution_api/common/content_blob_container.hpp deleted file mode 100644 index d92c4961..00000000 --- a/src/buildtool/execution_api/common/content_blob_container.hpp +++ /dev/null @@ -1,63 +0,0 @@ -// 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. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#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 <functional> -#include <memory> -#include <string> -#include <utility> //std::move - -#include "gsl/gsl" -#include "src/utils/cpp/hash_combine.hpp" - -template <typename TDigest> -struct ContentBlob final { - ContentBlob(TDigest mydigest, std::string mydata, bool is_exec) noexcept - : digest{std::move(mydigest)}, - data{std::make_shared<std::string>(std::move(mydata))}, - is_exec{is_exec} {} - - ContentBlob(TDigest mydigest, - gsl::not_null<std::shared_ptr<std::string>> const& mydata, - bool is_exec) noexcept - : digest{std::move(mydigest)}, data(mydata), is_exec{is_exec} {} - - [[nodiscard]] auto operator==(ContentBlob const& other) const noexcept - -> bool { - return std::equal_to<TDigest>{}(digest, other.digest) and - is_exec == other.is_exec; - } - - TDigest digest; - std::shared_ptr<std::string> data; - bool is_exec = false; -}; - -namespace std { -template <typename TDigest> -struct hash<ContentBlob<TDigest>> { - [[nodiscard]] auto operator()( - ContentBlob<TDigest> const& blob) const noexcept -> std::size_t { - std::size_t seed{}; - hash_combine(&seed, blob.digest); - hash_combine(&seed, blob.is_exec); - return seed; - } -}; -} // namespace std - -#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_CONTENT_BLOB_CONTAINER_HPP diff --git a/src/buildtool/execution_api/remote/TARGETS b/src/buildtool/execution_api/remote/TARGETS index d68e128b..f5923306 100644 --- a/src/buildtool/execution_api/remote/TARGETS +++ b/src/buildtool/execution_api/remote/TARGETS @@ -55,7 +55,6 @@ , ["src/buildtool/common/remote", "retry"] , ["src/buildtool/execution_api/bazel_msg", "bazel_msg_factory"] , ["src/buildtool/execution_api/common", "common_api"] - , ["src/buildtool/execution_api/common", "content_blob_container"] , ["src/buildtool/execution_api/common", "message_limits"] , ["src/buildtool/execution_api/utils", "outputscheck"] , ["src/buildtool/file_system", "object_type"] @@ -89,7 +88,6 @@ , ["src/buildtool/execution_api/bazel_msg", "directory_tree"] , ["src/buildtool/execution_api/common", "artifact_blob"] , ["src/buildtool/execution_api/common", "common_api"] - , ["src/buildtool/execution_api/common", "content_blob_container"] , ["src/buildtool/file_system", "file_system_manager"] , ["src/buildtool/file_system", "object_type"] , ["src/buildtool/logging", "log_level"] diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp index 449c9c3b..02db5a56 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp @@ -35,7 +35,6 @@ #include "src/buildtool/execution_api/bazel_msg/directory_tree.hpp" #include "src/buildtool/execution_api/common/artifact_blob.hpp" #include "src/buildtool/execution_api/common/common_api.hpp" -#include "src/buildtool/execution_api/common/content_blob_container.hpp" #include "src/buildtool/execution_api/common/stream_dumper.hpp" #include "src/buildtool/execution_api/common/tree_reader.hpp" #include "src/buildtool/execution_api/remote/bazel/bazel_action.hpp" diff --git a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp index 2a9fc182..0024ea97 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp @@ -34,7 +34,6 @@ #include "src/buildtool/common/remote/retry.hpp" #include "src/buildtool/common/remote/retry_config.hpp" #include "src/buildtool/execution_api/common/bytestream_utils.hpp" -#include "src/buildtool/execution_api/common/content_blob_container.hpp" #include "src/buildtool/execution_api/common/execution_common.hpp" #include "src/buildtool/execution_api/common/message_limits.hpp" #include "src/buildtool/file_system/object_type.hpp" diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp index 0be8b539..7b15b667 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp @@ -17,7 +17,6 @@ #include <functional> #include <utility> -#include "src/buildtool/execution_api/common/content_blob_container.hpp" #include "src/buildtool/execution_api/common/message_limits.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp b/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp index 4b6989ec..ad61c944 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp @@ -23,7 +23,6 @@ #include "src/buildtool/common/artifact_digest_factory.hpp" #include "src/buildtool/common/protocol_traits.hpp" #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" -#include "src/buildtool/execution_api/common/content_blob_container.hpp" #include "src/buildtool/execution_api/common/message_limits.hpp" #include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" diff --git a/src/buildtool/execution_api/remote/bazel/bazel_response.cpp b/src/buildtool/execution_api/remote/bazel/bazel_response.cpp index 0e994d1b..ad5ad764 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_response.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_response.cpp @@ -31,7 +31,6 @@ #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/execution_api/common/artifact_blob.hpp" #include "src/buildtool/execution_api/common/common_api.hpp" -#include "src/buildtool/execution_api/common/content_blob_container.hpp" #include "src/buildtool/execution_api/remote/bazel/bazel_network_reader.hpp" #include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" |