| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_BACKING_STORE_H_ | 5 #ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_BACKING_STORE_H_ |
| 6 #define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_BACKING_STORE_H_ | 6 #define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_BACKING_STORE_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 BlobChangeRecord(const std::string& key, int64 object_store_id); | 98 BlobChangeRecord(const std::string& key, int64 object_store_id); |
| 99 ~BlobChangeRecord(); | 99 ~BlobChangeRecord(); |
| 100 | 100 |
| 101 const std::string& key() const { return key_; } | 101 const std::string& key() const { return key_; } |
| 102 int64 object_store_id() const { return object_store_id_; } | 102 int64 object_store_id() const { return object_store_id_; } |
| 103 void SetBlobInfo(std::vector<IndexedDBBlobInfo>* blob_info); | 103 void SetBlobInfo(std::vector<IndexedDBBlobInfo>* blob_info); |
| 104 std::vector<IndexedDBBlobInfo>& mutable_blob_info() { return blob_info_; } | 104 std::vector<IndexedDBBlobInfo>& mutable_blob_info() { return blob_info_; } |
| 105 const std::vector<IndexedDBBlobInfo>& blob_info() const { | 105 const std::vector<IndexedDBBlobInfo>& blob_info() const { |
| 106 return blob_info_; | 106 return blob_info_; |
| 107 } | 107 } |
| 108 void SetHandles(ScopedVector<storage::BlobDataHandle>* handles); | 108 void SetHandles(ScopedVector<storage::BlobDataSnapshotHandle>* handles); |
| 109 scoped_ptr<BlobChangeRecord> Clone() const; | 109 scoped_ptr<BlobChangeRecord> Clone() const; |
| 110 | 110 |
| 111 private: | 111 private: |
| 112 std::string key_; | 112 std::string key_; |
| 113 int64 object_store_id_; | 113 int64 object_store_id_; |
| 114 std::vector<IndexedDBBlobInfo> blob_info_; | 114 std::vector<IndexedDBBlobInfo> blob_info_; |
| 115 ScopedVector<storage::BlobDataHandle> handles_; | 115 ScopedVector<storage::BlobDataSnapshotHandle> handles_; |
| 116 DISALLOW_COPY_AND_ASSIGN(BlobChangeRecord); | 116 DISALLOW_COPY_AND_ASSIGN(BlobChangeRecord); |
| 117 }; | 117 }; |
| 118 typedef std::map<std::string, BlobChangeRecord*> BlobChangeMap; | 118 typedef std::map<std::string, BlobChangeRecord*> BlobChangeMap; |
| 119 | 119 |
| 120 class CONTENT_EXPORT Transaction { | 120 class CONTENT_EXPORT Transaction { |
| 121 public: | 121 public: |
| 122 explicit Transaction(IndexedDBBackingStore* backing_store); | 122 explicit Transaction(IndexedDBBackingStore* backing_store); |
| 123 virtual ~Transaction(); | 123 virtual ~Transaction(); |
| 124 | 124 |
| 125 virtual void Begin(); | 125 virtual void Begin(); |
| 126 // The callback will be called eventually on success or failure, or | 126 // The callback will be called eventually on success or failure, or |
| 127 // immediately if phase one is complete due to lack of any blobs to write. | 127 // immediately if phase one is complete due to lack of any blobs to write. |
| 128 virtual leveldb::Status CommitPhaseOne(scoped_refptr<BlobWriteCallback>); | 128 virtual leveldb::Status CommitPhaseOne(scoped_refptr<BlobWriteCallback>); |
| 129 virtual leveldb::Status CommitPhaseTwo(); | 129 virtual leveldb::Status CommitPhaseTwo(); |
| 130 virtual void Rollback(); | 130 virtual void Rollback(); |
| 131 void Reset() { | 131 void Reset() { |
| 132 backing_store_ = NULL; | 132 backing_store_ = NULL; |
| 133 transaction_ = NULL; | 133 transaction_ = NULL; |
| 134 } | 134 } |
| 135 leveldb::Status PutBlobInfoIfNeeded( | 135 leveldb::Status PutBlobInfoIfNeeded( |
| 136 int64 database_id, | 136 int64 database_id, |
| 137 int64 object_store_id, | 137 int64 object_store_id, |
| 138 const std::string& object_store_data_key, | 138 const std::string& object_store_data_key, |
| 139 std::vector<IndexedDBBlobInfo>*, | 139 std::vector<IndexedDBBlobInfo>*, |
| 140 ScopedVector<storage::BlobDataHandle>* handles); | 140 ScopedVector<storage::BlobDataSnapshotHandle>* handles); |
| 141 void PutBlobInfo(int64 database_id, | 141 void PutBlobInfo(int64 database_id, |
| 142 int64 object_store_id, | 142 int64 object_store_id, |
| 143 const std::string& object_store_data_key, | 143 const std::string& object_store_data_key, |
| 144 std::vector<IndexedDBBlobInfo>*, | 144 std::vector<IndexedDBBlobInfo>*, |
| 145 ScopedVector<storage::BlobDataHandle>* handles); | 145 ScopedVector<storage::BlobDataSnapshotHandle>* handles); |
| 146 | 146 |
| 147 LevelDBTransaction* transaction() { return transaction_.get(); } | 147 LevelDBTransaction* transaction() { return transaction_.get(); } |
| 148 | 148 |
| 149 leveldb::Status GetBlobInfoForRecord( | 149 leveldb::Status GetBlobInfoForRecord( |
| 150 int64 database_id, | 150 int64 database_id, |
| 151 const std::string& object_store_data_key, | 151 const std::string& object_store_data_key, |
| 152 IndexedDBValue* value); | 152 IndexedDBValue* value); |
| 153 | 153 |
| 154 // This holds a BlobEntryKey and the encoded IndexedDBBlobInfo vector stored | 154 // This holds a BlobEntryKey and the encoded IndexedDBBlobInfo vector stored |
| 155 // under that key. | 155 // under that key. |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 388 int64 database_id, | 388 int64 database_id, |
| 389 int64 object_store_id, | 389 int64 object_store_id, |
| 390 const IndexedDBKey& key, | 390 const IndexedDBKey& key, |
| 391 IndexedDBValue* record) WARN_UNUSED_RESULT; | 391 IndexedDBValue* record) WARN_UNUSED_RESULT; |
| 392 virtual leveldb::Status PutRecord( | 392 virtual leveldb::Status PutRecord( |
| 393 IndexedDBBackingStore::Transaction* transaction, | 393 IndexedDBBackingStore::Transaction* transaction, |
| 394 int64 database_id, | 394 int64 database_id, |
| 395 int64 object_store_id, | 395 int64 object_store_id, |
| 396 const IndexedDBKey& key, | 396 const IndexedDBKey& key, |
| 397 IndexedDBValue* value, | 397 IndexedDBValue* value, |
| 398 ScopedVector<storage::BlobDataHandle>* handles, | 398 ScopedVector<storage::BlobDataSnapshotHandle>* handles, |
| 399 RecordIdentifier* record) WARN_UNUSED_RESULT; | 399 RecordIdentifier* record) WARN_UNUSED_RESULT; |
| 400 virtual leveldb::Status ClearObjectStore( | 400 virtual leveldb::Status ClearObjectStore( |
| 401 IndexedDBBackingStore::Transaction* transaction, | 401 IndexedDBBackingStore::Transaction* transaction, |
| 402 int64 database_id, | 402 int64 database_id, |
| 403 int64 object_store_id) WARN_UNUSED_RESULT; | 403 int64 object_store_id) WARN_UNUSED_RESULT; |
| 404 virtual leveldb::Status DeleteRecord( | 404 virtual leveldb::Status DeleteRecord( |
| 405 IndexedDBBackingStore::Transaction* transaction, | 405 IndexedDBBackingStore::Transaction* transaction, |
| 406 int64 database_id, | 406 int64 database_id, |
| 407 int64 object_store_id, | 407 int64 object_store_id, |
| 408 const RecordIdentifier& record) WARN_UNUSED_RESULT; | 408 const RecordIdentifier& record) WARN_UNUSED_RESULT; |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 581 // will hold a reference to this backing store. | 581 // will hold a reference to this backing store. |
| 582 IndexedDBActiveBlobRegistry active_blob_registry_; | 582 IndexedDBActiveBlobRegistry active_blob_registry_; |
| 583 base::OneShotTimer<IndexedDBBackingStore> close_timer_; | 583 base::OneShotTimer<IndexedDBBackingStore> close_timer_; |
| 584 | 584 |
| 585 DISALLOW_COPY_AND_ASSIGN(IndexedDBBackingStore); | 585 DISALLOW_COPY_AND_ASSIGN(IndexedDBBackingStore); |
| 586 }; | 586 }; |
| 587 | 587 |
| 588 } // namespace content | 588 } // namespace content |
| 589 | 589 |
| 590 #endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_BACKING_STORE_H_ | 590 #endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_BACKING_STORE_H_ |
| OLD | NEW |