IDBTransactionInfo IDBTransactionInfo::clientTransaction(const IDBClient::IDBConnectionToServer& connection, const Vector<String>& objectStores, IndexedDB::TransactionMode mode)
{
    IDBTransactionInfo result((IDBResourceIdentifier(connection)));
    result.m_mode = mode;
    result.m_objectStores = objectStores;

    return result;
}
IDBTransactionInfo IDBTransactionInfo::clientTransaction(const IDBClient::IDBConnectionProxy& connectionProxy, const Vector<String>& objectStores, IDBTransactionMode mode)
{
    IDBTransactionInfo result((IDBResourceIdentifier(connectionProxy)));
    result.m_mode = mode;
    result.m_objectStores = objectStores;

    return result;
}
IDBTransactionInfo IDBTransactionInfo::versionChange(const IDBServer::IDBConnectionToClient& connection, const IDBDatabaseInfo& originalDatabaseInfo, uint64_t newVersion)
{
    IDBTransactionInfo result((IDBResourceIdentifier(connection)));
    result.m_mode = IndexedDB::TransactionMode::VersionChange;
    result.m_newVersion = newVersion;
    result.m_originalDatabaseInfo = std::make_unique<IDBDatabaseInfo>(originalDatabaseInfo);

    return result;
}
IDBResourceIdentifier IDBResourceIdentifier::deletedValue()
{
    return IDBResourceIdentifier(std::numeric_limits<uint64_t>::max(), std::numeric_limits<uint64_t>::max());
}
IDBResourceIdentifier IDBResourceIdentifier::emptyValue()
{
    return IDBResourceIdentifier(0, 0);
}
IDBResourceIdentifier IDBResourceIdentifier::isolatedCopy() const
{
    return IDBResourceIdentifier(m_idbConnectionIdentifier, m_resourceNumber);
}