ServerOpenDBRequest.cpp [plain text]
#include "config.h"
#include "ServerOpenDBRequest.h"
#if ENABLE(INDEXED_DATABASE)
#include "IDBResultData.h"
namespace WebCore {
namespace IDBServer {
Ref<ServerOpenDBRequest> ServerOpenDBRequest::create(IDBConnectionToClient& connection, const IDBRequestData& requestData)
{
return adoptRef(*new ServerOpenDBRequest(connection, requestData));
}
ServerOpenDBRequest::ServerOpenDBRequest(IDBConnectionToClient& connection, const IDBRequestData& requestData)
: m_connection(connection)
, m_requestData(requestData)
{
}
bool ServerOpenDBRequest::isOpenRequest() const
{
return m_requestData.isOpenRequest();
}
bool ServerOpenDBRequest::isDeleteRequest() const
{
return m_requestData.isDeleteRequest();
}
void ServerOpenDBRequest::maybeNotifyRequestBlocked(uint64_t currentVersion)
{
if (m_notifiedBlocked)
return;
uint64_t requestedVersion = isOpenRequest() ? m_requestData.requestedVersion() : 0;
m_connection.notifyOpenDBRequestBlocked(m_requestData.requestIdentifier(), currentVersion, requestedVersion);
m_notifiedBlocked = true;
}
void ServerOpenDBRequest::notifyDidDeleteDatabase(const IDBDatabaseInfo& info)
{
ASSERT(isDeleteRequest());
m_connection.didDeleteDatabase(IDBResultData::deleteDatabaseSuccess(m_requestData.requestIdentifier(), info));
}
void ServerOpenDBRequest::notifiedConnectionsOfVersionChange(HashSet<uint64_t>&& connectionIdentifiers)
{
ASSERT(!m_notifiedConnectionsOfVersionChange);
m_notifiedConnectionsOfVersionChange = true;
m_connectionsPendingVersionChangeEvent = WTFMove(connectionIdentifiers);
}
void ServerOpenDBRequest::connectionClosedOrFiredVersionChangeEvent(uint64_t connectionIdentifier)
{
m_connectionsPendingVersionChangeEvent.remove(connectionIdentifier);
}
} }
#endif // ENABLE(INDEXED_DATABASE)