diff options
Diffstat (limited to 'Source/WebCore/storage/IDBDatabaseBackendImpl.h')
| -rw-r--r-- | Source/WebCore/storage/IDBDatabaseBackendImpl.h | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/Source/WebCore/storage/IDBDatabaseBackendImpl.h b/Source/WebCore/storage/IDBDatabaseBackendImpl.h index 8942968..f779125 100644 --- a/Source/WebCore/storage/IDBDatabaseBackendImpl.h +++ b/Source/WebCore/storage/IDBDatabaseBackendImpl.h @@ -28,31 +28,33 @@ #include "IDBCallbacks.h" #include "IDBDatabase.h" +#include <wtf/Deque.h> #include <wtf/HashMap.h> -#include <wtf/text/StringHash.h> +#include <wtf/ListHashSet.h> #if ENABLE(INDEXED_DATABASE) namespace WebCore { +class IDBBackingStore; +class IDBDatabase; class IDBFactoryBackendImpl; class IDBObjectStoreBackendImpl; -class IDBSQLiteDatabase; class IDBTransactionCoordinator; -class SQLiteDatabase; class IDBDatabaseBackendImpl : public IDBDatabaseBackendInterface { public: - static PassRefPtr<IDBDatabaseBackendImpl> create(const String& name, IDBSQLiteDatabase* database, IDBTransactionCoordinator* coordinator, IDBFactoryBackendImpl* factory, const String& uniqueIdentifier) + static PassRefPtr<IDBDatabaseBackendImpl> create(const String& name, IDBBackingStore* database, IDBTransactionCoordinator* coordinator, IDBFactoryBackendImpl* factory, const String& uniqueIdentifier) { return adoptRef(new IDBDatabaseBackendImpl(name, database, coordinator, factory, uniqueIdentifier)); } virtual ~IDBDatabaseBackendImpl(); - SQLiteDatabase& sqliteDatabase() const; + PassRefPtr<IDBBackingStore> backingStore() const; static const int64_t InvalidId = 0; int64_t id() const { return m_id; } + void open(PassRefPtr<IDBDatabaseCallbacks>); virtual String name() const { return m_name; } virtual String version() const { return m_version; } @@ -60,15 +62,15 @@ public: virtual PassRefPtr<IDBObjectStoreBackendInterface> createObjectStore(const String& name, const String& keyPath, bool autoIncrement, IDBTransactionBackendInterface*, ExceptionCode&); virtual void deleteObjectStore(const String& name, IDBTransactionBackendInterface*, ExceptionCode&); - virtual void setVersion(const String& version, PassRefPtr<IDBCallbacks>, ExceptionCode&); + virtual void setVersion(const String& version, PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, ExceptionCode&); virtual PassRefPtr<IDBTransactionBackendInterface> transaction(DOMStringList* objectStoreNames, unsigned short mode, ExceptionCode&); - virtual void close(); + virtual void close(PassRefPtr<IDBDatabaseCallbacks>); PassRefPtr<IDBObjectStoreBackendInterface> objectStore(const String& name); IDBTransactionCoordinator* transactionCoordinator() const { return m_transactionCoordinator.get(); } private: - IDBDatabaseBackendImpl(const String& name, IDBSQLiteDatabase* database, IDBTransactionCoordinator*, IDBFactoryBackendImpl*, const String& uniqueIdentifier); + IDBDatabaseBackendImpl(const String& name, IDBBackingStore* database, IDBTransactionCoordinator*, IDBFactoryBackendImpl*, const String& uniqueIdentifier); void loadObjectStores(); @@ -81,7 +83,7 @@ private: static void addObjectStoreToMap(ScriptExecutionContext*, PassRefPtr<IDBDatabaseBackendImpl>, PassRefPtr<IDBObjectStoreBackendImpl>); static void resetVersion(ScriptExecutionContext*, PassRefPtr<IDBDatabaseBackendImpl>, const String& version); - RefPtr<IDBSQLiteDatabase> m_sqliteDatabase; + RefPtr<IDBBackingStore> m_backingStore; int64 m_id; String m_name; String m_version; @@ -94,6 +96,12 @@ private: ObjectStoreMap m_objectStores; RefPtr<IDBTransactionCoordinator> m_transactionCoordinator; + + class PendingSetVersionCall; + Deque<RefPtr<PendingSetVersionCall> > m_pendingSetVersionCalls; + + typedef ListHashSet<RefPtr<IDBDatabaseCallbacks> > DatabaseCallbacksSet; + DatabaseCallbacksSet m_databaseCallbacksSet; }; } // namespace WebCore |
