Index: storage/browser/blob/blob_data_snapshot.h |
diff --git a/storage/browser/blob/blob_data_snapshot.h b/storage/browser/blob/blob_data_snapshot.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ca38bba3f0ed548c8c234a601e33a8e2e57983f7 |
--- /dev/null |
+++ b/storage/browser/blob/blob_data_snapshot.h |
@@ -0,0 +1,50 @@ |
+// TODO: Insert description here. (generated by dmurph) |
+ |
+#ifndef STORAGE_BROWSER_BLOB_BLOB_DATA_SNAPSHOT_H_ |
+#define STORAGE_BROWSER_BLOB_BLOB_DATA_SNAPSHOT_H_ |
+ |
+#include <string> |
+#include <vector> |
+ |
+#include "base/memory/ref_counted.h" |
+#include "base/supports_user_data.h" |
+#include "storage/browser/blob/blob_data_item.h" |
+#include "storage/browser/storage_browser_export.h" |
+ |
+namespace storage { |
+class BlobDataBuilder; |
+ |
+// Snapshot of a Blob. This snapshot holds a refcount of the current |
+// blob item resources so the backing storage for these items will stick |
+// around for the lifetime of this object. (The data represented by a blob is |
+// immutable, but the backing store can change). This structure thread safe. |
+class STORAGE_EXPORT BlobDataSnapshot : public base::SupportsUserData::Data { |
+ public: |
+ BlobDataSnapshot(const BlobDataSnapshot& other); |
+ ~BlobDataSnapshot() override; |
+ |
+ const std::string& uuid() const { return uuid_; } |
michaeln
2015/01/22 02:26:34
A snapshot may outlive the registered blob, so thi
dmurph
2015/01/23 00:10:18
As discussed, removed the uuid here, and clarified
|
+ const std::vector<scoped_refptr<BlobDataItem>>& items() const { |
+ return items_; |
+ } |
+ const std::string& content_type() const { return content_type_; } |
+ const std::string& content_disposition() const { |
+ return content_disposition_; |
+ } |
+ size_t GetMemoryUsage() const; |
+ |
+ private: |
+ friend class BlobDataBuilder; |
+ BlobDataSnapshot(const std::string& uuid, |
+ const std::string& content_type, |
+ const std::string& content_disposition, |
+ const std::vector<scoped_refptr<BlobDataItem>>& items); |
+ |
+ const std::string uuid_; |
+ const std::string content_type_; |
+ const std::string content_disposition_; |
+ const std::vector<scoped_refptr<BlobDataItem>> items_; |
+}; |
+ |
+} // namespace storage |
+#endif // STORAGE_BROWSER_BLOB_BLOB_DATA_SNAPSHOT_H_ |