| 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..416c3865f323305129f155e3d016f3b739ec956a
|
| --- /dev/null
|
| +++ b/storage/browser/blob/blob_data_snapshot.h
|
| @@ -0,0 +1,54 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#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). Keeping this object alive
|
| +// guarantees that the resources stay alive, but it does not guarentee that
|
| +// the blob stays alive. Use the BlobDataHandle to keep a blob alive.
|
| +// This class must be deleted on the IO thread.
|
| +class STORAGE_EXPORT BlobDataSnapshot : public base::SupportsUserData::Data {
|
| + public:
|
| + BlobDataSnapshot(const BlobDataSnapshot& other);
|
| + ~BlobDataSnapshot() override;
|
| +
|
| + 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_
|
|
|