/** {@inheritDoc} */ @Override public boolean add(T o) { onAccess(); final SetItemKey key = itemKey(o); return retry(new Callable<Boolean>() { @Override public Boolean call() throws Exception { return cache.putIfAbsent(key, true); } }); }
/** {@inheritDoc} */ @Override public boolean contains(Object o) { onAccess(); final SetItemKey key = itemKey(o); return retry(new Callable<Boolean>() { @Override public Boolean call() throws Exception { return cache.get(key) != null; } }); }
/** {@inheritDoc} */ @Override public boolean remove(Object o) { onAccess(); final SetItemKey key = itemKey(o); return retry(new Callable<Boolean>() { @Override public Boolean call() throws Exception { return cache.remove(key); } }); }
/** {@inheritDoc} */ @Override public void clear() { try { onAccess(); try (GridCloseableIterator<T> iter = iterator0()) { Collection<SetItemKey> rmvKeys = new ArrayList<>(BATCH_SIZE); for (T val : iter) { rmvKeys.add(itemKey(val)); if (rmvKeys.size() == BATCH_SIZE) { retryRemoveAll(rmvKeys); rmvKeys.clear(); } } if (!rmvKeys.isEmpty()) retryRemoveAll(rmvKeys); } } catch (IgniteCheckedException e) { throw U.convertException(e); } }
/** {@inheritDoc} */ @Override public boolean removeAll(Collection<?> c) { onAccess(); boolean rmv = false; Set<SetItemKey> rmvKeys = null; for (Object obj : c) { if (rmv) { if (rmvKeys == null) rmvKeys = U.newHashSet(BATCH_SIZE); rmvKeys.add(itemKey(obj)); if (rmvKeys.size() == BATCH_SIZE) { retryRemoveAll(rmvKeys); rmvKeys.clear(); } } else rmv = remove(obj); } if (!F.isEmpty(rmvKeys)) retryRemoveAll(rmvKeys); return rmv; }
/** {@inheritDoc} */ @Override public boolean addAll(Collection<? extends T> c) { onAccess(); boolean add = false; Map<SetItemKey, Boolean> addKeys = null; for (T obj : c) { if (add) { if (addKeys == null) addKeys = U.newHashMap(BATCH_SIZE); addKeys.put(itemKey(obj), true); if (addKeys.size() == BATCH_SIZE) { retryPutAll(addKeys); addKeys.clear(); } } else add = add(obj); } if (!F.isEmpty(addKeys)) retryPutAll(addKeys); return add; }
/** {@inheritDoc} */ @Override public boolean retainAll(Collection<?> c) { try { onAccess(); try (GridCloseableIterator<T> iter = iterator0()) { boolean rmv = false; Set<SetItemKey> rmvKeys = null; for (T val : iter) { if (!c.contains(val)) { rmv = true; if (rmvKeys == null) rmvKeys = U.newHashSet(BATCH_SIZE); rmvKeys.add(itemKey(val)); if (rmvKeys.size() == BATCH_SIZE) { retryRemoveAll(rmvKeys); rmvKeys.clear(); } } } if (!F.isEmpty(rmvKeys)) retryRemoveAll(rmvKeys); return rmv; } } catch (IgniteCheckedException e) { throw U.convertException(e); } }
/** {@inheritDoc} */ @Override public boolean contains(Object o) { onAccess(); final SetItemKey key = itemKey(o); return retry(new Callable<Boolean>() { @Override public Boolean call() throws Exception { return cache.get(key) != null; } }); }
/** {@inheritDoc} */ @Override public boolean remove(Object o) { onAccess(); final SetItemKey key = itemKey(o); return retry(new Callable<Boolean>() { @Override public Boolean call() throws Exception { return cache.remove(key); } }); }
/** {@inheritDoc} */ @Override public boolean add(T o) { onAccess(); final SetItemKey key = itemKey(o); return retry(new Callable<Boolean>() { @Override public Boolean call() throws Exception { return cache.putIfAbsent(key, true); } }); }
/** {@inheritDoc} */ @Override public void clear() { try { onAccess(); try (GridCloseableIterator<T> iter = iterator0()) { Collection<SetItemKey> rmvKeys = new ArrayList<>(BATCH_SIZE); for (T val : iter) { rmvKeys.add(itemKey(val)); if (rmvKeys.size() == BATCH_SIZE) { retryRemoveAll(rmvKeys); rmvKeys.clear(); } } if (!rmvKeys.isEmpty()) retryRemoveAll(rmvKeys); } } catch (IgniteCheckedException e) { throw U.convertException(e); } }
/** {@inheritDoc} */ @Override public boolean removeAll(Collection<?> c) { onAccess(); boolean rmv = false; Set<SetItemKey> rmvKeys = null; for (Object obj : c) { if (rmv) { if (rmvKeys == null) rmvKeys = U.newHashSet(BATCH_SIZE); rmvKeys.add(itemKey(obj)); if (rmvKeys.size() == BATCH_SIZE) { retryRemoveAll(rmvKeys); rmvKeys.clear(); } } else rmv = remove(obj); } if (!F.isEmpty(rmvKeys)) retryRemoveAll(rmvKeys); return rmv; }
/** {@inheritDoc} */ @Override public boolean addAll(Collection<? extends T> c) { onAccess(); boolean add = false; Map<SetItemKey, Boolean> addKeys = null; for (T obj : c) { if (add) { if (addKeys == null) addKeys = U.newHashMap(BATCH_SIZE); addKeys.put(itemKey(obj), true); if (addKeys.size() == BATCH_SIZE) { retryPutAll(addKeys); addKeys.clear(); } } else add = add(obj); } if (!F.isEmpty(addKeys)) retryPutAll(addKeys); return add; }
/** {@inheritDoc} */ @Override public boolean retainAll(Collection<?> c) { try { onAccess(); try (GridCloseableIterator<T> iter = iterator0()) { boolean rmv = false; Set<SetItemKey> rmvKeys = null; for (T val : iter) { if (!c.contains(val)) { rmv = true; if (rmvKeys == null) rmvKeys = U.newHashSet(BATCH_SIZE); rmvKeys.add(itemKey(val)); if (rmvKeys.size() == BATCH_SIZE) { retryRemoveAll(rmvKeys); rmvKeys.clear(); } } } if (!F.isEmpty(rmvKeys)) retryRemoveAll(rmvKeys); return rmv; } } catch (IgniteCheckedException e) { throw U.convertException(e); } }