diff options
Diffstat (limited to 'src/buildtool/execution_api/common')
-rw-r--r-- | src/buildtool/execution_api/common/TARGETS | 6 | ||||
-rw-r--r-- | src/buildtool/execution_api/common/content_blob_container.hpp | 83 |
2 files changed, 1 insertions, 88 deletions
diff --git a/src/buildtool/execution_api/common/TARGETS b/src/buildtool/execution_api/common/TARGETS index edb815b9..e2dd5d3b 100644 --- a/src/buildtool/execution_api/common/TARGETS +++ b/src/buildtool/execution_api/common/TARGETS @@ -125,11 +125,7 @@ { "type": ["@", "rules", "CC", "library"] , "name": ["content_blob_container"] , "hdrs": ["content_blob_container.hpp"] - , "deps": - [ ["@", "gsl", "", "gsl"] - , ["src/utils/cpp", "hash_combine"] - , ["src/utils/cpp", "transformed_range"] - ] + , "deps": [["@", "gsl", "", "gsl"], ["src/utils/cpp", "hash_combine"]] , "stage": ["src", "buildtool", "execution_api", "common"] } , "artifact_blob_container": diff --git a/src/buildtool/execution_api/common/content_blob_container.hpp b/src/buildtool/execution_api/common/content_blob_container.hpp index bc546ac4..d92c4961 100644 --- a/src/buildtool/execution_api/common/content_blob_container.hpp +++ b/src/buildtool/execution_api/common/content_blob_container.hpp @@ -19,13 +19,10 @@ #include <functional> #include <memory> #include <string> -#include <unordered_map> #include <utility> //std::move -#include <vector> #include "gsl/gsl" #include "src/utils/cpp/hash_combine.hpp" -#include "src/utils/cpp/transformed_range.hpp" template <typename TDigest> struct ContentBlob final { @@ -63,84 +60,4 @@ struct hash<ContentBlob<TDigest>> { }; } // namespace std -template <typename TDigest> -class ContentBlobContainer final { - public: - 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)); - } - } - - /// \brief Emplace new Blob to container. - void Emplace(BlobType&& blob) { - DigestType digest = blob.digest; - if (auto res = blobs_.emplace(std::move(digest), std::move(blob)); - res.second) { - // only count size if blob was actually added - content_size_ += res.first->second.data->size(); - } - } - - /// \brief Clear all Blobs from container. - void Clear() noexcept { - blobs_.clear(); - content_size_ = 0; - } - - /// \brief Number of Blobs in container. - [[nodiscard]] auto Size() const noexcept -> std::size_t { - return blobs_.size(); - } - - /// \brief Collective size of the stored content in container. - [[nodiscard]] auto ContentSize() const noexcept -> std::size_t { - return content_size_; - } - - /// \brief Is equivalent BazelBlob (with same Digest) in container. - /// \param[in] blob BazelBlob to search equivalent BazelBlob for - [[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) -> BlobType const& { - return p.second; - }; - return TransformedRange{ - blobs_.cbegin(), blobs_.cend(), std::move(converter)}; - } - - /// \brief Obtain iterable list of Digests from container. - [[nodiscard]] auto Digests() const noexcept { - auto converter = [](auto const& p) -> DigestType const& { - return p.first; - }; - return TransformedRange{ - blobs_.cbegin(), blobs_.cend(), std::move(converter)}; - } - - /// \brief Obtain iterable list of BazelBlobs related to Digests. - /// \param[in] related Related Digests - [[nodiscard]] auto RelatedBlobs( - std::vector<DigestType> const& related) const noexcept { - auto converter = [this](auto const& digest) -> BlobType const& { - return blobs_.at(digest); - }; - return TransformedRange{ - related.begin(), related.end(), std::move(converter)}; - }; - - private: - std::unordered_map<DigestType, BlobType> blobs_{}; - std::size_t content_size_{}; -}; - #endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_CONTENT_BLOB_CONTAINER_HPP |