public V Get(object key) { var keyData = ToData(key); if (_nearCache != null) { var cached = _nearCache.Get(keyData); if (cached != null) { if (cached.Equals(ClientNearCache.NullObject)) { return(default(V)); } return((V)cached); } } var request = MapGetCodec.EncodeRequest(GetName(), keyData, ThreadUtil.GetThreadId()); var result = Invoke(request, keyData); if (_nearCache != null) { _nearCache.Put(keyData, result); } return(ToObject <V>(MapGetCodec.DecodeResponse(result).response)); }
protected virtual object GetInternal(IData keyData) { var request = MapGetCodec.EncodeRequest(Name, keyData, GetThreadId()); var result = Invoke(request, keyData); return(MapGetCodec.DecodeResponse(result).Response); }
/// <summary> /// Gets the value data for a key, or null if the map does not contain an entry with this key. /// </summary> /// <param name="keyData">The key data.</param> /// <param name="cancellationToken">A cancellation token.</param> /// <returns>The value data for the specified key, or null if the map does not contain an entry with this key.</returns> protected async Task <IData> GetDataAsync(IData keyData, CancellationToken cancellationToken) { var requestMessage = MapGetCodec.EncodeRequest(Name, keyData, ContextId); var responseMessage = await Cluster.Messaging.SendToKeyPartitionOwnerAsync(requestMessage, keyData, cancellationToken).CAF(); var response = MapGetCodec.DecodeResponse(responseMessage).Response; return(response); }
public virtual Task <TValue> GetAsync(TKey key) { CheckNotNull(key, NullKeyIsNotAllowed); var keyData = ToData(key); var request = MapGetCodec.EncodeRequest(Name, keyData, GetThreadId()); return(InvokeAsync(request, keyData, m => { var resp = MapGetCodec.DecodeResponse(m).Response; return ToObject <TValue>(resp); })); }
public virtual Task <TValue> GetAsync(TKey key) { ValidationUtil.CheckNotNull(key, ValidationUtil.NULL_KEY_IS_NOT_ALLOWED); var keyData = ToData(key); var request = MapGetCodec.EncodeRequest(GetName(), keyData, ThreadUtil.GetThreadId()); return(InvokeAsync(request, keyData, m => { var resp = MapGetCodec.DecodeResponse(m).response; return ToObject <TValue>(resp); })); }
public Task <TValue> GetAsync(TKey key) { var keyData = ToData(key); if (_nearCache != null) { var cached = _nearCache.Get(keyData); if (cached != null) { var task = GetContext().GetExecutionService().Submit(() => { if (cached.Equals(ClientNearCache.NullObject)) { return(default(TValue)); } return((TValue)cached); }); return(task); } } var request = MapGetCodec.EncodeRequest(GetName(), keyData, ThreadUtil.GetThreadId()); try { var task = GetContext().GetInvocationService().InvokeOnKeyOwner(request, key); var deserializeTask = task.ToTask().ContinueWith(continueTask => { var responseMessage = ThreadUtil.GetResult(continueTask); var result = MapGetCodec.DecodeResponse(responseMessage).response; if (_nearCache != null) { _nearCache.Put(keyData, result); } return(ToObject <TValue>(result)); }); return(deserializeTask); } catch (Exception e) { throw ExceptionUtil.Rethrow(e); } }