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)); }
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); }