Exemple #1
0
        public IDictionary <TKey, object> ExecuteOnEntries(IEntryProcessor entryProcessor, IPredicate predicate)
        {
            var request          = MapExecuteWithPredicateCodec.EncodeRequest(Name, ToData(entryProcessor), ToData(predicate));
            var response         = Invoke(request);
            var resultParameters = MapExecuteWithPredicateCodec.DecodeResponse(response);

            return(DeserializeEntries <TKey>(resultParameters.Response));
        }
Exemple #2
0
        private async Task <IDictionary <TKey, TResult> > ExecuteAsync <TResult>(IEntryProcessor <TResult> processor, IPredicate predicate, CancellationToken cancellationToken)
        {
            var(processorData, predicateData) = ToSafeData(processor, predicate);

            var requestMessage  = MapExecuteWithPredicateCodec.EncodeRequest(Name, processorData, predicateData);
            var responseMessage = await Cluster.Messaging.SendAsync(requestMessage, cancellationToken).CfAwait();

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

            var result = new Dictionary <TKey, TResult>();

            foreach (var(keyData, valueData) in response)
            {
                result[ToObject <TKey>(keyData)] = ToObject <TResult>(valueData);
            }
            return(result);
        }