public virtual TValue GetForUpdate(object key)
        {
            var keyData = ToData(key);
            var request = TransactionalMapGetForUpdateCodec.EncodeRequest(GetName(), GetTransactionId(), GetThreadId(),
                                                                          keyData);
            var result = Invoke(request, m => TransactionalMapGetForUpdateCodec.DecodeResponse(m).response);

            return(ToObject <TValue>(result));
        }
        public async Task <TValue> GetForUpdateAsync(TKey key)
        {
            var keyData         = ToSafeData(key);
            var requestMessage  = TransactionalMapGetForUpdateCodec.EncodeRequest(Name, TransactionId, ContextId, keyData);
            var responseMessage = await Cluster.Messaging.SendToMemberAsync(requestMessage, TransactionClientConnection).CAF();

            var response = TransactionalMapGetForUpdateCodec.DecodeResponse(responseMessage).Response;

            return(ToObject <TValue>(response));
        }