void IDBTransaction::operationDidComplete(TransactionOperation& operation) { ASSERT(m_transactionOperationMap.get(operation.identifier()) == &operation); m_transactionOperationMap.remove(operation.identifier()); scheduleOperationTimer(); }
void IDBConnectionProxy::saveOperation(TransactionOperation& operation) { Locker<Lock> locker(m_transactionOperationLock); ASSERT(!m_activeOperations.contains(operation.identifier())); m_activeOperations.set(operation.identifier(), &operation); }
void IDBTransaction::commitOnServer(TransactionOperation& operation) { LOG(IndexedDB, "IDBTransaction::commitOnServer"); serverConnection().commitTransaction(*this); ASSERT(m_transactionOperationMap.contains(operation.identifier())); m_transactionOperationMap.remove(operation.identifier()); }
void IDBTransaction::abortOnServerAndCancelRequests(TransactionOperation& operation) { LOG(IndexedDB, "IDBTransaction::abortOnServerAndCancelRequests"); ASSERT(m_transactionOperationQueue.isEmpty()); serverConnection().abortTransaction(*this); ASSERT(m_transactionOperationMap.contains(operation.identifier())); m_transactionOperationMap.remove(operation.identifier()); IDBError error(IDBDatabaseException::AbortError); for (auto& operation : m_abortQueue) operation->completed(IDBResultData::error(operation->identifier(), error)); // Since we're aborting, it should be impossible to have queued any further operations. ASSERT(m_transactionOperationQueue.isEmpty()); }
void IDBConnectionToServer::saveOperation(TransactionOperation& operation) { ASSERT(!m_activeOperations.contains(operation.identifier())); m_activeOperations.set(operation.identifier(), &operation); }