openTransaction method

  1. @override
Future<DBSQLiteConnectionWrapper> openTransaction(
  1. Transaction transaction
)
override

Implementation

@override
Future<DBSQLiteConnectionWrapper> openTransaction(Transaction transaction) {
  var contextCompleter = Completer<DBSQLiteConnectionWrapper>();

  var result = executeWithPool(
    (connection) {
      return connection.openTransaction((transactionWrap) {
        contextCompleter.complete(transactionWrap);

        return _runTransaction(transaction, connection);
      });
    },
    validator: (c) => !transaction.isAborted,
    onError: (e, s) => transaction.notifyExecutionError(
      e,
      s,
      errorResolver: resolveError,
      debugInfo: () => transaction.toString(withExecutedOperations: false),
    ),
  );

  transaction.transactionResult = result;

  return contextCompleter.future;
}