/** {@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 <R> R affinityCall(final IgniteCallable<R> job) { return delegate.affinityCall(job); }
/** {@inheritDoc} */ @Override public void affinityRun(final IgniteRunnable job) { delegate.affinityRun(job); }
/** * @return Closeable iterator. */ private GridCloseableIterator<T> iterator0() { try { WeakReferenceCloseableIterator<T> it = separated ? separatedCacheIterator() : sharedCacheIterator(); if (rmvd) { ctx.itHolder().removeIterator(it); checkRemoved(); } return it; } catch (IgniteCheckedException e) { throw U.convertException(e); } }
/** {@inheritDoc} */ @Override public void close() { IgniteFuture<Boolean> destroyFut = null; gate.enter(); try { delegate.close(); if (delegate.separated()) { IgniteInternalFuture<Boolean> fut = cctx.kernalContext().cache().dynamicDestroyCache( cctx.cache().name(), false, true, false, null); ((GridFutureAdapter)fut).ignoreInterrupts(); destroyFut = new IgniteFutureImpl<>(fut); } } finally { gate.leave(); } if (destroyFut != null) destroyFut.get(); }
/** * Enters busy state. */ private void enterBusy() { boolean rmvd; if (rmvCheck) { try { rmvd = !delegate().checkHeader(); } catch (IgniteCheckedException e) { throw U.convertException(e); } rmvCheck = false; if (rmvd) { delegate.removed(true); cctx.dataStructures().onRemoved(this); throw removedError(); } } if (!busyLock.enterBusy()) throw removedError(); }
/** * Checks if set was removed and handles iterators weak reference queue. */ private void onAccess() { ctx.itHolder().checkWeakQueue(); checkRemoved(); }
/** {@inheritDoc} */ @Override public boolean collocated() { return delegate.collocated(); }
/** {@inheritDoc} */ @Override public boolean add(final T t) { enterBusy(); try { gate.enter(); try { return delegate.add(t); } finally { gate.leave(); } } finally { leaveBusy(); } }
/** {@inheritDoc} */ @Override public boolean addAll(final Collection<? extends T> c) { enterBusy(); try { gate.enter(); try { return delegate.addAll(c); } finally { gate.leave(); } } finally { leaveBusy(); } }
/** {@inheritDoc} */ @Override public void clear() { enterBusy(); try { gate.enter(); try { delegate.clear(); } finally { gate.leave(); } } finally { leaveBusy(); } }
set = new GridCacheSetProxy<>(cctx, new GridCacheSetImpl<T>(cctx, name, hdr)));
/** * @return Closeable iterator. */ private GridCloseableIterator<T> iterator0() { try { WeakReferenceCloseableIterator<T> it = separated ? separatedCacheIterator() : sharedCacheIterator(); if (rmvd) { ctx.itHolder().removeIterator(it); checkRemoved(); } return it; } catch (IgniteCheckedException e) { throw U.convertException(e); } }
/** {@inheritDoc} */ @Override public void close() { IgniteFuture<Boolean> destroyFut = null; gate.enter(); try { delegate.close(); if (delegate.separated()) { IgniteInternalFuture<Boolean> fut = cctx.kernalContext().cache().dynamicDestroyCache( cctx.cache().name(), false, true, false); ((GridFutureAdapter)fut).ignoreInterrupts(); destroyFut = new IgniteFutureImpl<>(fut); } } finally { gate.leave(); } if (destroyFut != null) destroyFut.get(); }
/** * Enters busy state. */ private void enterBusy() { boolean rmvd; if (rmvCheck) { try { rmvd = !delegate().checkHeader(); } catch (IgniteCheckedException e) { throw U.convertException(e); } rmvCheck = false; if (rmvd) { delegate.removed(true); cctx.dataStructures().onRemoved(this); throw removedError(); } } if (!busyLock.enterBusy()) throw removedError(); }
/** * Checks if set was removed and handles iterators weak reference queue. */ private void onAccess() { ctx.itHolder().checkWeakQueue(); checkRemoved(); }
/** {@inheritDoc} */ @Override public boolean collocated() { return delegate.collocated(); }
/** {@inheritDoc} */ @Override public boolean add(final T t) { enterBusy(); try { gate.enter(); try { return delegate.add(t); } finally { gate.leave(); } } finally { leaveBusy(); } }
/** {@inheritDoc} */ @Override public boolean addAll(final Collection<? extends T> c) { enterBusy(); try { gate.enter(); try { return delegate.addAll(c); } finally { gate.leave(); } } finally { leaveBusy(); } }
/** {@inheritDoc} */ @Override public void clear() { enterBusy(); try { gate.enter(); try { delegate.clear(); } finally { gate.leave(); } } finally { leaveBusy(); } }