| Index: storage/browser/blob/shareable_blob_data_item.cc
|
| diff --git a/storage/browser/blob/shareable_blob_data_item.cc b/storage/browser/blob/shareable_blob_data_item.cc
|
| index 40aaf9c7e10d29d40acbc73798f67f6c16030b4d..0b9cf962da2b2a1b5de1ee1be939fca9753f2405 100644
|
| --- a/storage/browser/blob/shareable_blob_data_item.cc
|
| +++ b/storage/browser/blob/shareable_blob_data_item.cc
|
| @@ -7,20 +7,50 @@
|
| #include "storage/browser/blob/blob_data_item.h"
|
|
|
| namespace storage {
|
| +namespace {
|
|
|
| -ShareableBlobDataItem::ShareableBlobDataItem(
|
| - const std::string& blob_uuid,
|
| - const scoped_refptr<BlobDataItem>& item)
|
| - : item_(item) {
|
| +uint64_t GetAndIncrementItemId() {
|
| + static uint64_t sNextItemId = 0;
|
| + return sNextItemId++;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +ShareableBlobDataItem::ShareableBlobDataItem(const std::string& target_uuid,
|
| + scoped_refptr<BlobDataItem> item,
|
| + ShareableBlobDataItem::State state)
|
| + : item_id_(GetAndIncrementItemId()), state_(state), item_(std::move(item)) {
|
| DCHECK_NE(item_->type(), DataElement::TYPE_BLOB);
|
| - referencing_blobs_.insert(blob_uuid);
|
| + referencing_blobs_.insert(target_uuid);
|
| }
|
|
|
| ShareableBlobDataItem::~ShareableBlobDataItem() {
|
| }
|
|
|
| -const scoped_refptr<BlobDataItem>& ShareableBlobDataItem::item() {
|
| +const scoped_refptr<BlobDataItem>& ShareableBlobDataItem::item() const {
|
| return item_;
|
| }
|
|
|
| +void PrintTo(const ShareableBlobDataItem& x, ::std::ostream* os) {
|
| + *os << "<ShareableBlobDataItem>{ item_id: " << x.item_id_
|
| + << ", state: " << x.state_ << ", item: ";
|
| + PrintTo(*x.item_, os);
|
| + *os << ", referencing_blobs: [";
|
| + for (const std::string& uuid : x.referencing_blobs_) {
|
| + *os << uuid << ", ";
|
| + }
|
| + *os << "]}";
|
| +}
|
| +
|
| +bool operator==(const ShareableBlobDataItem& a,
|
| + const ShareableBlobDataItem& b) {
|
| + return a.item_id() == b.item_id() && *a.item() == *b.item() &&
|
| + a.referencing_blobs() == b.referencing_blobs();
|
| +}
|
| +
|
| +bool operator!=(const ShareableBlobDataItem& a,
|
| + const ShareableBlobDataItem& b) {
|
| + return !(a == b);
|
| +}
|
| +
|
| } // namespace storage
|
|
|