/** * @param nodeId Sender ID. * @param res Response. */ private void processGetResponse(UUID nodeId, GridNearGetResponse<K, V> res) { GridNearGetFuture<K, V> fut = (GridNearGetFuture<K, V>) ctx.mvcc().<Map<K, V>>future(res.version().id(), res.futureId()); if (fut == null) { if (log.isDebugEnabled()) log.debug( "Failed to find future for get response [sender=" + nodeId + ", res=" + res + ']'); return; } fut.onResult(nodeId, res); }
/** * @param tx Transaction. * @param keys Keys to load. * @param filter Filter. * @return Future. */ GridFuture<Map<K, V>> txLoadAsync( GridNearTxLocal<K, V> tx, @Nullable Collection<? extends K> keys, @Nullable GridPredicate<? super GridCacheEntry<K, V>>[] filter) { assert tx != null; GridNearGetFuture<K, V> fut = new GridNearGetFuture<K, V>(ctx, keys, false, tx, filter); // Register future for responses. ctx.mvcc().addFuture(fut); fut.init(); return fut; }
/** * @param keys Keys to load. * @param reload Reload flag. * @param filter Filter. * @return Loaded values. */ public GridFuture<Map<K, V>> loadAsync( @Nullable Collection<? extends K> keys, boolean reload, @Nullable GridPredicate<? super GridCacheEntry<K, V>>[] filter) { if (F.isEmpty(keys)) return new GridFinishedFuture<Map<K, V>>(ctx.kernalContext(), Collections.<K, V>emptyMap()); GridNearGetFuture<K, V> fut = new GridNearGetFuture<K, V>(ctx, keys, reload, null, filter); // Register future for responses. ctx.mvcc().addFuture(fut); fut.init(); return ctx.wrapCloneMap(fut); }