Chromium Code Reviews| 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_ |