summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/execution_api/common')
-rw-r--r--src/buildtool/execution_api/common/TARGETS6
-rw-r--r--src/buildtool/execution_api/common/content_blob_container.hpp83
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