Пример #1
0
void IDBTransaction::didGetRecordOnServer(IDBRequest& request, const IDBResultData& resultData)
{
    LOG(IndexedDB, "IDBTransaction::didGetRecordOnServer");

    if (resultData.type() == IDBResultType::Error) {
        request.requestCompleted(resultData);
        return;
    }

    ASSERT(resultData.type() == IDBResultType::GetRecordSuccess);

    const IDBGetResult& result = resultData.getResult();

    if (request.sourceIndexIdentifier() && request.requestedIndexRecordType() == IndexedDB::IndexRecordType::Key) {
        if (!result.keyData().isNull())
            request.setResult(&result.keyData());
        else
            request.setResultToUndefined();
    } else {
        if (resultData.getResult().valueBuffer().data())
            request.setResultToStructuredClone(resultData.getResult().valueBuffer());
        else
            request.setResultToUndefined();
    }

    request.requestCompleted(resultData);
}
Пример #2
0
TransactionOperation::TransactionOperation(IDBTransaction& transaction, IDBRequest& request)
    : TransactionOperation(transaction)
{
    m_objectStoreIdentifier = request.sourceObjectStoreIdentifier();
    m_indexIdentifier = request.sourceIndexIdentifier();
    if (m_indexIdentifier)
        m_indexRecordType = request.requestedIndexRecordType();
}