ServerOpenDBRequest.h [plain text]
#pragma once
#if ENABLE(INDEXED_DATABASE)
#include "IDBConnectionToClient.h"
#include "IDBRequestData.h"
#include <wtf/HashSet.h>
#include <wtf/Ref.h>
#include <wtf/RefCounted.h>
namespace WebCore {
class IDBDatabaseInfo;
namespace IDBServer {
class ServerOpenDBRequest : public RefCounted<ServerOpenDBRequest> {
public:
static Ref<ServerOpenDBRequest> create(IDBConnectionToClient&, const IDBRequestData&);
IDBConnectionToClient& connection() { return m_connection; }
const IDBRequestData& requestData() const { return m_requestData; }
bool isOpenRequest() const;
bool isDeleteRequest() const;
void maybeNotifyRequestBlocked(uint64_t currentVersion);
void notifyDidDeleteDatabase(const IDBDatabaseInfo&);
uint64_t versionChangeID() const;
void notifiedConnectionsOfVersionChange(HashSet<uint64_t>&& connectionIdentifiers);
void connectionClosedOrFiredVersionChangeEvent(uint64_t connectionIdentifier);
bool hasConnectionsPendingVersionChangeEvent() const { return !m_connectionsPendingVersionChangeEvent.isEmpty(); }
bool hasNotifiedConnectionsOfVersionChange() const { return m_notifiedConnectionsOfVersionChange; }
private:
ServerOpenDBRequest(IDBConnectionToClient&, const IDBRequestData&);
IDBConnectionToClient& m_connection;
IDBRequestData m_requestData;
bool m_notifiedBlocked { false };
bool m_notifiedConnectionsOfVersionChange { false };
HashSet<uint64_t> m_connectionsPendingVersionChangeEvent;
};
} }
#endif // ENABLE(INDEXED_DATABASE)