public async Task <bool> TryUpdateAsync(TKey key, TValue oldValue, TValue newValue) { var(keyData, oldValueData, newValueData) = ToSafeData(key, oldValue, newValue); var requestMessage = TransactionalMapReplaceIfSameCodec.EncodeRequest(Name, TransactionId, ContextId, keyData, oldValueData, newValueData); var responseMessage = await Cluster.Messaging.SendToMemberAsync(requestMessage, TransactionClientConnection).CAF(); return(TransactionalMapReplaceIfSameCodec.DecodeResponse(responseMessage).Response); }
public virtual bool Replace(TKey key, TValue oldValue, TValue newValue) { var keyData = ToData(key); var oldValueData = ToData(oldValue); var newValueData = ToData(newValue); var request = TransactionalMapReplaceIfSameCodec.EncodeRequest(GetName(), GetTransactionId(), GetThreadId(), keyData, oldValueData, newValueData); return(Invoke(request, m => TransactionalMapReplaceIfSameCodec.DecodeResponse(m).response)); }