summaryrefslogtreecommitdiffstats
path: root/content/browser/indexed_db/indexed_db_backing_store.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/indexed_db/indexed_db_backing_store.h')
-rw-r--r--content/browser/indexed_db/indexed_db_backing_store.h319
1 files changed, 0 insertions, 319 deletions
diff --git a/content/browser/indexed_db/indexed_db_backing_store.h b/content/browser/indexed_db/indexed_db_backing_store.h
deleted file mode 100644
index 6862d91..0000000
--- a/content/browser/indexed_db/indexed_db_backing_store.h
+++ /dev/null
@@ -1,319 +0,0 @@
-// Copyright (c) 2013 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 CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_BACKING_STORE_H_
-#define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_BACKING_STORE_H_
-
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/files/file_path.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "content/browser/indexed_db/indexed_db.h"
-#include "content/browser/indexed_db/indexed_db_metadata.h"
-#include "content/browser/indexed_db/leveldb/leveldb_iterator.h"
-#include "content/browser/indexed_db/leveldb/leveldb_transaction.h"
-#include "content/common/content_export.h"
-#include "content/common/indexed_db/indexed_db_key.h"
-#include "content/common/indexed_db/indexed_db_key_path.h"
-#include "content/common/indexed_db/indexed_db_key_range.h"
-
-namespace content {
-
-class LevelDBComparator;
-class LevelDBDatabase;
-
-class LevelDBFactory {
- public:
- virtual scoped_ptr<LevelDBDatabase> OpenLevelDB(
- const base::FilePath& file_name,
- const LevelDBComparator* comparator) = 0;
- virtual bool DestroyLevelDB(const base::FilePath& file_name) = 0;
-};
-
-class CONTENT_EXPORT IndexedDBBackingStore
- : public base::RefCounted<IndexedDBBackingStore> {
- public:
- class CONTENT_EXPORT Transaction;
-
- static scoped_refptr<IndexedDBBackingStore> Open(
- const string16& database_identifier,
- const string16& path_base,
- const string16& file_identifier);
- static scoped_refptr<IndexedDBBackingStore> Open(
- const string16& database_identifier,
- const string16& path_base,
- const string16& file_identifier,
- LevelDBFactory* factory);
- static scoped_refptr<IndexedDBBackingStore> OpenInMemory(
- const string16& identifier);
- static scoped_refptr<IndexedDBBackingStore> OpenInMemory(
- const string16& identifier,
- LevelDBFactory* factory);
- base::WeakPtr<IndexedDBBackingStore> GetWeakPtr() {
- return weak_factory_.GetWeakPtr();
- }
-
- virtual std::vector<string16> GetDatabaseNames();
- virtual bool GetIDBDatabaseMetaData(const string16& name,
- IndexedDBDatabaseMetadata* metadata,
- bool& success) WARN_UNUSED_RESULT;
- virtual bool CreateIDBDatabaseMetaData(const string16& name,
- const string16& version,
- int64 int_version,
- int64& row_id);
- virtual bool UpdateIDBDatabaseMetaData(
- IndexedDBBackingStore::Transaction* transaction,
- int64 row_id,
- const string16& version);
- virtual bool UpdateIDBDatabaseIntVersion(
- IndexedDBBackingStore::Transaction* transaction,
- int64 row_id,
- int64 int_version);
- virtual bool DeleteDatabase(const string16& name);
-
- bool GetObjectStores(int64 database_id,
- IndexedDBDatabaseMetadata::ObjectStoreMap* map)
- WARN_UNUSED_RESULT;
- virtual bool CreateObjectStore(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- const string16& name,
- const IndexedDBKeyPath& key_path,
- bool auto_increment);
- virtual bool DeleteObjectStore(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id) WARN_UNUSED_RESULT;
-
- class CONTENT_EXPORT RecordIdentifier {
- public:
- RecordIdentifier(const std::vector<char>& primary_key, int64 version);
- RecordIdentifier();
- ~RecordIdentifier();
-
- const std::vector<char>& primary_key() const { return primary_key_; }
- int64 version() const { return version_; }
- void Reset(const std::vector<char>& primary_key, int64 version) {
- primary_key_ = primary_key;
- version_ = version;
- }
-
- private:
- std::vector<char>
- primary_key_; // TODO(jsbell): Make it more clear that this is
- // the *encoded* version of the key.
- int64 version_;
- DISALLOW_COPY_AND_ASSIGN(RecordIdentifier);
- };
-
- virtual bool GetRecord(IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- const IndexedDBKey& key,
- std::vector<char>& record) WARN_UNUSED_RESULT;
- virtual bool PutRecord(IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- const IndexedDBKey& key,
- const std::vector<char>& value,
- RecordIdentifier* record) WARN_UNUSED_RESULT;
- virtual bool ClearObjectStore(IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id) WARN_UNUSED_RESULT;
- virtual bool DeleteRecord(IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- const RecordIdentifier& record) WARN_UNUSED_RESULT;
- virtual bool GetKeyGeneratorCurrentNumber(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- int64& current_number) WARN_UNUSED_RESULT;
- virtual bool MaybeUpdateKeyGeneratorCurrentNumber(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- int64 new_state,
- bool check_current) WARN_UNUSED_RESULT;
- virtual bool KeyExistsInObjectStore(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- const IndexedDBKey& key,
- RecordIdentifier* found_record_identifier,
- bool& found) WARN_UNUSED_RESULT;
-
- virtual bool CreateIndex(IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- int64 index_id,
- const string16& name,
- const IndexedDBKeyPath& key_path,
- bool is_unique,
- bool is_multi_entry) WARN_UNUSED_RESULT;
- virtual bool DeleteIndex(IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- int64 index_id) WARN_UNUSED_RESULT;
- virtual bool PutIndexDataForRecord(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- int64 index_id,
- const IndexedDBKey& key,
- const RecordIdentifier& record) WARN_UNUSED_RESULT;
- virtual bool GetPrimaryKeyViaIndex(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- int64 index_id,
- const IndexedDBKey& key,
- scoped_ptr<IndexedDBKey>* primary_key) WARN_UNUSED_RESULT;
- virtual bool KeyExistsInIndex(IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- int64 index_id,
- const IndexedDBKey& key,
- scoped_ptr<IndexedDBKey>* found_primary_key,
- bool& exists) WARN_UNUSED_RESULT;
-
- class Cursor {
- public:
- virtual ~Cursor();
-
- enum IteratorState {
- READY = 0,
- SEEK
- };
-
- struct CursorOptions {
- CursorOptions();
- ~CursorOptions();
- int64 database_id;
- int64 object_store_id;
- int64 index_id;
- std::vector<char> low_key;
- bool low_open;
- std::vector<char> high_key;
- bool high_open;
- bool forward;
- bool unique;
- };
-
- const IndexedDBKey& key() const { return *current_key_; }
- bool ContinueFunction(const IndexedDBKey* = 0, IteratorState = SEEK);
- bool Advance(unsigned long);
- bool FirstSeek();
-
- virtual Cursor* Clone() = 0;
- virtual const IndexedDBKey& primary_key() const;
- virtual std::vector<char>* Value() = 0;
- virtual const RecordIdentifier& record_identifier() const;
- virtual bool LoadCurrentRow() = 0;
-
- protected:
- Cursor(LevelDBTransaction* transaction,
- const CursorOptions& cursor_options);
- explicit Cursor(const IndexedDBBackingStore::Cursor* other);
-
- virtual std::vector<char> EncodeKey(const IndexedDBKey& key) = 0;
-
- bool IsPastBounds() const;
- bool HaveEnteredRange() const;
-
- LevelDBTransaction* transaction_;
- const CursorOptions cursor_options_;
- scoped_ptr<LevelDBIterator> iterator_;
- scoped_ptr<IndexedDBKey> current_key_;
- IndexedDBBackingStore::RecordIdentifier record_identifier_;
- };
-
- virtual scoped_ptr<Cursor> OpenObjectStoreKeyCursor(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- const IndexedDBKeyRange& key_range,
- indexed_db::CursorDirection);
- virtual scoped_ptr<Cursor> OpenObjectStoreCursor(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- const IndexedDBKeyRange& key_range,
- indexed_db::CursorDirection);
- virtual scoped_ptr<Cursor> OpenIndexKeyCursor(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- int64 index_id,
- const IndexedDBKeyRange& key_range,
- indexed_db::CursorDirection);
- virtual scoped_ptr<Cursor> OpenIndexCursor(
- IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- int64 index_id,
- const IndexedDBKeyRange& key_range,
- indexed_db::CursorDirection);
-
- class Transaction {
- public:
- explicit Transaction(IndexedDBBackingStore* backing_store);
- ~Transaction();
- void begin();
- bool Commit();
- void Rollback();
- void Reset() {
- backing_store_ = NULL;
- transaction_ = NULL;
- }
-
- static LevelDBTransaction* LevelDBTransactionFrom(
- Transaction* transaction) {
- return transaction->transaction_.get();
- }
-
- private:
- IndexedDBBackingStore* backing_store_;
- scoped_refptr<LevelDBTransaction> transaction_;
- };
-
- protected:
- IndexedDBBackingStore(const string16& identifier,
- scoped_ptr<LevelDBDatabase> db,
- scoped_ptr<LevelDBComparator> comparator);
- virtual ~IndexedDBBackingStore();
- friend class base::RefCounted<IndexedDBBackingStore>;
-
- private:
- static scoped_refptr<IndexedDBBackingStore> Create(
- const string16& identifier,
- scoped_ptr<LevelDBDatabase> db,
- scoped_ptr<LevelDBComparator> comparator);
-
- bool FindKeyInIndex(IndexedDBBackingStore::Transaction* transaction,
- int64 database_id,
- int64 object_store_id,
- int64 index_id,
- const IndexedDBKey& key,
- std::vector<char>& found_encoded_primary_key,
- bool& found);
- bool GetIndexes(int64 database_id,
- int64 object_store_id,
- IndexedDBObjectStoreMetadata::IndexMap* map)
- WARN_UNUSED_RESULT;
-
- string16 identifier_;
-
- scoped_ptr<LevelDBDatabase> db_;
- scoped_ptr<LevelDBComparator> comparator_;
- base::WeakPtrFactory<IndexedDBBackingStore> weak_factory_;
-};
-
-} // namespace content
-
-#endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_BACKING_STORE_H_