IDBOpenDBRequest.h [plain text]
#pragma once
#if ENABLE(INDEXED_DATABASE)
#include "IDBDatabaseIdentifier.h"
#include "IDBRequest.h"
namespace WebCore {
class IDBResultData;
class IDBOpenDBRequest final : public IDBRequest {
public:
static Ref<IDBOpenDBRequest> createDeleteRequest(ScriptExecutionContext&, IDBClient::IDBConnectionProxy&, const IDBDatabaseIdentifier&);
static Ref<IDBOpenDBRequest> createOpenRequest(ScriptExecutionContext&, IDBClient::IDBConnectionProxy&, const IDBDatabaseIdentifier&, uint64_t version);
virtual ~IDBOpenDBRequest();
const IDBDatabaseIdentifier& databaseIdentifier() const { return m_databaseIdentifier; }
uint64_t version() const { return m_version; }
void requestCompleted(const IDBResultData&);
void requestBlocked(uint64_t oldVersion, uint64_t newVersion);
void versionChangeTransactionDidFinish();
void fireSuccessAfterVersionChangeCommit();
void fireErrorAfterVersionChangeCompletion();
private:
IDBOpenDBRequest(ScriptExecutionContext&, IDBClient::IDBConnectionProxy&, const IDBDatabaseIdentifier&, uint64_t version, IndexedDB::RequestType);
void dispatchEvent(Event&) final;
void cancelForStop() final;
void onError(const IDBResultData&);
void onSuccess(const IDBResultData&);
void onUpgradeNeeded(const IDBResultData&);
void onDeleteDatabaseSuccess(const IDBResultData&);
bool isOpenDBRequest() const final { return true; }
IDBDatabaseIdentifier m_databaseIdentifier;
uint64_t m_version { 0 };
};
}
#endif // ENABLE(INDEXED_DATABASE)