Index: storage/browser/blob/blob_data_item.h |
diff --git a/storage/browser/blob/blob_data_item.h b/storage/browser/blob/blob_data_item.h |
index a711a4caf3b3fe4bc969be9e63c87bb33aa79834..0316d871eac32c7ac159d1d56d91b181cad81e81 100644 |
--- a/storage/browser/blob/blob_data_item.h |
+++ b/storage/browser/blob/blob_data_item.h |
@@ -28,7 +28,8 @@ class BlobStorageContext; |
// this class is to allow the resource to stick around in the snapshot even |
// after the resource was swapped in the blob (either to disk or to memory) by |
// the BlobStorageContext. |
-class STORAGE_EXPORT BlobDataItem : public base::RefCounted<BlobDataItem> { |
+class STORAGE_EXPORT BlobDataItem |
+ : public base::RefCountedThreadSafe<BlobDataItem> { |
public: |
// The DataHandle class is used to persist resources that are needed for |
// reading this BlobDataItem. This object will stay around while any reads are |
@@ -43,6 +44,15 @@ class STORAGE_EXPORT BlobDataItem : public base::RefCounted<BlobDataItem> { |
friend class base::RefCounted<DataHandle>; |
}; |
+ explicit BlobDataItem(std::unique_ptr<DataElement> item); |
+ BlobDataItem(std::unique_ptr<DataElement> item, |
+ const scoped_refptr<DataHandle>& data_handle); |
+ BlobDataItem(std::unique_ptr<DataElement> item, |
+ const scoped_refptr<DataHandle>& data_handle, |
+ disk_cache::Entry* entry, |
+ int disk_cache_stream_index, |
+ int disk_cache_side_stream_index); |
+ |
DataElement::Type type() const { return item_->type(); } |
const char* bytes() const { return item_->bytes(); } |
const base::FilePath& path() const { return item_->path(); } |
@@ -63,20 +73,14 @@ class STORAGE_EXPORT BlobDataItem : public base::RefCounted<BlobDataItem> { |
return disk_cache_side_stream_index_; |
} |
+ const scoped_refptr<DataHandle>& data_handle() const { return data_handle_; } |
+ |
private: |
friend class BlobDataBuilder; |
friend class BlobStorageContext; |
- friend class base::RefCounted<BlobDataItem>; |
+ friend class base::RefCountedThreadSafe<BlobDataItem>; |
friend STORAGE_EXPORT void PrintTo(const BlobDataItem& x, ::std::ostream* os); |
- explicit BlobDataItem(std::unique_ptr<DataElement> item); |
- BlobDataItem(std::unique_ptr<DataElement> item, |
- const scoped_refptr<DataHandle>& data_handle); |
- BlobDataItem(std::unique_ptr<DataElement> item, |
- const scoped_refptr<DataHandle>& data_handle, |
- disk_cache::Entry* entry, |
- int disk_cache_stream_index, |
- int disk_cache_side_stream_index); |
virtual ~BlobDataItem(); |
std::unique_ptr<DataElement> item_; |