summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/storage/IDBDatabaseBackendImpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/storage/IDBDatabaseBackendImpl.h')
-rw-r--r--Source/WebCore/storage/IDBDatabaseBackendImpl.h26
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