/** <inheritDoc /> */ public ITransactionCollection GetLocalActiveTransactions() { return(DoInOp(OpLocalActiveTransactions, stream => { var reader = Marshaller.StartUnmarshal(stream); var size = reader.ReadInt(); var result = new List <ITransaction>(size); for (var i = 0; i < size; i++) { var id = reader.ReadLong(); var concurrency = reader.ReadInt(); var isolation = reader.ReadInt(); var timeout = reader.ReadLongAsTimespan(); var label = reader.ReadString(); var innerTx = new TransactionRollbackOnlyProxy(this, id, (TransactionConcurrency)concurrency, (TransactionIsolation)isolation, timeout, label, _localNodeId); result.Add(innerTx); } return new TransactionCollectionImpl(result); })); }
/// <summary> /// Rolls tx back in async mode. /// </summary> internal Task TxRollbackAsync(TransactionRollbackOnlyProxy tx) { return(DoOutOpAsync(OpRollbackAsync, w => w.WriteLong(tx.Id))); }
/// <summary> /// Remove transaction. /// </summary> /// <param name="tx">Transaction.</param> internal void TxRemove(TransactionRollbackOnlyProxy tx) { DoOutInOp(OpLocalActiveTransactionsRemove, tx.Id); }
/// <summary> /// Get transaction current state. /// </summary> /// <param name="tx">Transaction.</param> /// <returns>Transaction current state.</returns> internal TransactionState TxState(TransactionRollbackOnlyProxy tx) { return((TransactionState)DoOutInOp(OpState, tx.Id)); }
/// <summary> /// Close transaction. /// </summary> /// <param name="tx">Transaction.</param> /// <returns>Final transaction state.</returns> public void TxClose(TransactionRollbackOnlyProxy tx) { DoOutInOp(OpClose, tx.Id); }
/// <summary> /// Rollback transaction. /// </summary> /// <param name="tx">Transaction.</param> internal void TxRollback(TransactionRollbackOnlyProxy tx) { DoOutInOp(OpRollback, tx.Id); }