Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1347)

Unified Diff: storage/browser/blob/shareable_blob_data_item.h

Issue 2448353002: [BlobAsync] Moving async handling into BlobStorageContext & quota out. (Closed)
Patch Set: comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « storage/browser/blob/internal_blob_data.cc ('k') | storage/browser/blob/shareable_blob_data_item.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: storage/browser/blob/shareable_blob_data_item.h
diff --git a/storage/browser/blob/shareable_blob_data_item.h b/storage/browser/blob/shareable_blob_data_item.h
index b356c0c78a13f465456c0ff12d7fcaff7103ff77..7d6c15f8c2e19a7aaa535e13378d161177ac677e 100644
--- a/storage/browser/blob/shareable_blob_data_item.h
+++ b/storage/browser/blob/shareable_blob_data_item.h
@@ -18,15 +18,14 @@
namespace storage {
class BlobDataItem;
-class InternalBlobData;
// This class allows blob items to be shared between blobs. This class contains
// both the blob data item and the uuids of all the blobs using this item.
// The data in this class (the item) is immutable, but the item itself can be
// swapped out with an item with the same data but a different backing (think
// RAM vs file backed).
-// We also allow the storage of a deletion closure which is used for memory
-// quota reclamation.
+// We also allow the storage of a memory quota allocation object which is used
+// for memory quota reclamation.
class STORAGE_EXPORT ShareableBlobDataItem
: public base::RefCounted<ShareableBlobDataItem> {
public:
@@ -44,11 +43,10 @@ class STORAGE_EXPORT ShareableBlobDataItem
POPULATED_WITHOUT_QUOTA
};
- ShareableBlobDataItem(const std::string& referencing_blob_uuid,
- scoped_refptr<BlobDataItem> item,
- State state);
+ ShareableBlobDataItem(scoped_refptr<BlobDataItem> item, State state);
const scoped_refptr<BlobDataItem>& item() const { return item_; }
+
void set_item(scoped_refptr<BlobDataItem> item);
// This is a unique auto-incrementing id assigned to this item on
@@ -56,13 +54,6 @@ class STORAGE_EXPORT ShareableBlobDataItem
// structure for eviction to disk.
uint64_t item_id() const { return item_id_; }
- const base::hash_set<std::string>& referencing_blobs() const {
- return referencing_blobs_;
- }
- base::hash_set<std::string>* referencing_blobs_mutable() {
- return &referencing_blobs_;
- }
-
State state() const { return state_; }
void set_state(State state) { state_ = state; }
@@ -77,6 +68,7 @@ class STORAGE_EXPORT ShareableBlobDataItem
private:
friend class BlobMemoryController;
friend class BlobMemoryControllerTest;
+ friend class BlobStorageContext;
friend class base::RefCounted<ShareableBlobDataItem>;
friend STORAGE_EXPORT void PrintTo(const ShareableBlobDataItem& x,
::std::ostream* os);
@@ -88,11 +80,12 @@ class STORAGE_EXPORT ShareableBlobDataItem
memory_allocation_ = std::move(allocation);
}
+ bool has_memory_allocation() { return static_cast<bool>(memory_allocation_); }
+
// This is a unique identifier for this ShareableBlobDataItem.
const uint64_t item_id_;
State state_;
scoped_refptr<BlobDataItem> item_;
- base::hash_set<std::string> referencing_blobs_;
std::unique_ptr<BlobMemoryController::MemoryAllocation> memory_allocation_;
DISALLOW_COPY_AND_ASSIGN(ShareableBlobDataItem);
« no previous file with comments | « storage/browser/blob/internal_blob_data.cc ('k') | storage/browser/blob/shareable_blob_data_item.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698