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

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

Issue 810403004: [Storage] Blob Storage Refactoring pt 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: BUILD.gn file changes Created 5 years, 11 months 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
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_

Powered by Google App Engine
This is Rietveld 408576698