Пример #1
0
 @Override
 public Map<K, V> getAll(Set<K> keys) {
   Set<Data> keySet = new HashSet(keys.size());
   Map<K, V> result = new HashMap<K, V>();
   for (Object key : keys) {
     keySet.add(toData(key));
   }
   if (nearCache != null) {
     final Iterator<Data> iterator = keySet.iterator();
     while (iterator.hasNext()) {
       Data key = iterator.next();
       Object cached = nearCache.get(key);
       if (cached != null && !ClientNearCache.NULL_OBJECT.equals(cached)) {
         result.put((K) toObject(key), (V) cached);
         iterator.remove();
       }
     }
   }
   if (keys.isEmpty()) {
     return result;
   }
   MapGetAllRequest request = new MapGetAllRequest(name, keySet);
   MapEntrySet mapEntrySet = invoke(request);
   Set<Entry<Data, Data>> entrySet = mapEntrySet.getEntrySet();
   for (Entry<Data, Data> dataEntry : entrySet) {
     final V value = (V) toObject(dataEntry.getValue());
     final K key = (K) toObject(dataEntry.getKey());
     result.put(key, value);
     if (nearCache != null) {
       nearCache.put(dataEntry.getKey(), value);
     }
   }
   return result;
 }
Пример #2
0
  @Override
  public Future<V> getAsync(final K key) {
    final Data keyData = toData(key);
    if (nearCache != null) {
      Object cached = nearCache.get(keyData);
      if (cached != null && !ClientNearCache.NULL_OBJECT.equals(cached)) {
        return new CompletedFuture(
            getContext().getSerializationService(),
            cached,
            getContext().getExecutionService().getAsyncExecutor());
      }
    }

    final MapGetRequest request = new MapGetRequest(name, keyData);
    try {
      final ICompletableFuture future =
          getContext().getInvocationService().invokeOnKeyOwner(request, keyData);
      return new DelegatingFuture<V>(future, getContext().getSerializationService());
    } catch (Exception e) {
      throw ExceptionUtil.rethrow(e);
    }
  }