@Override public void notFound(ObjectId id) { target.notFound(id); } }
@Override public void notFound(ObjectId id) { target.notFound(id); } }
@Nullable private T cacheHit(ObjectId id, RevObject object) { if (type.isInstance(object)) { listener.found(id, null); return type.cast(object); } else { listener.notFound(id); } return null; } }
@Nullable private T cacheHit(ObjectId id, RevObject object) { if (type.isInstance(object)) { listener.found(id, null); return type.cast(object); } else { listener.notFound(id); } return null; }
@Nullable private T cacheHit(ObjectId id, RevObject object) { if (type.isInstance(object)) { listener.found(id, null); return type.cast(object); } else { listener.notFound(id); } return null; } }
@Nullable private T cacheHit(ObjectId id, RevObject object) { if (type.isInstance(object)) { listener.found(id, null); return type.cast(object); } else { listener.notFound(id); } return null; }
long notifyDeleted(int[] deleted, List<ObjectId> ids, BulkOpListener listener) { long count = 0; for (int i = 0; i < deleted.length; i++) { ObjectId id = ids.get(i); sharedCache.invalidate(id); if (deleted[i] > 0) { count++; listener.deleted(id); } else { listener.notFound(id); } } return count; }
long notifyDeleted(int[] deleted, List<ObjectId> ids, BulkOpListener listener) { long count = 0; for (int i = 0; i < deleted.length; i++) { ObjectId id = ids.get(i); sharedCache.invalidate(id); if (deleted[i] > 0) { count++; listener.deleted(id); } else { listener.notFound(id); } } return count; }
public @Override void deleteAll(Iterator<ObjectId> ids, final BulkOpListener listener) { checkNotNull(ids, "ids is null"); checkNotNull(listener, "listener is null"); checkState(isOpen(), "db is closed"); while (ids.hasNext()) { ObjectId id = ids.next(); RevObject removed = this.objects.remove(id); if (removed == null) { listener.notFound(id); } else { listener.deleted(id); } } }
@Override protected RevObject computeNext() { RevObject obj = null; while (obj == null) { if (!queryIds.hasNext()) { return endOfData(); } ObjectId id = queryIds.next(); obj = getIfPresent(id); if (obj == null) { listener.notFound(id); } else { listener.found(obj.getId(), null); } } return obj == null ? endOfData() : obj; } };
public @Override void deleteAll(Iterator<ObjectId> ids, final BulkOpListener listener) { checkNotNull(ids, "ids is null"); checkNotNull(listener, "listener is null"); checkState(isOpen(), "db is closed"); while (ids.hasNext()) { ObjectId id = ids.next(); RevObject removed = this.objects.remove(id); if (removed == null) { listener.notFound(id); } else { listener.deleted(id); } } }
private @Nullable ObjectInfo<T> computeNext() { checkOpen(); try (RocksDBReference dbRef = dbhandle.getReference()) { while (noderefs.hasNext()) { final NodeRef ref = noderefs.next(); final ObjectId id = ref.getObjectId(); id.getRawValue(keybuff); final int size = dbRef.db().get(readOps, keybuff, valueBuff); if (RocksDB.NOT_FOUND == size) { listener.notFound(id); continue; } if (size > valueBuff.length) { valueBuff = dbRef.db().get(readOps, keybuff); } RevObject object = serializer().read(id, new ByteArrayInputStream(valueBuff)); if (type.isInstance(object)) { listener.found(id, Integer.valueOf(size)); return ObjectInfo.of(ref, type.cast(object)); } else { listener.notFound(id); } } } catch (Exception e) { throw Throwables.propagate(e); } return null; } };
public @Override <T extends RevObject> Iterator<T> getAll(final Iterable<ObjectId> ids, final BulkOpListener listener, final Class<T> type) { checkNotNull(ids, "ids is null"); checkNotNull(listener, "listener is null"); checkNotNull(type, "type is null"); checkState(isOpen(), "db is closed"); final int characteristics = IMMUTABLE | NONNULL | DISTINCT; final boolean parallel = false; Stream<T> stream; stream = StreamSupport .stream(spliteratorUnknownSize(ids.iterator(), characteristics), parallel)// .map((id) -> { T obj = getIfPresent(id, type); if (null == obj) { listener.notFound(id); } else { listener.found(id, null); } return obj; })// .filter((o) -> o != null); return stream.iterator(); }
public @Override <T extends RevObject> Iterator<T> getAll(final Iterable<ObjectId> ids, final BulkOpListener listener, final Class<T> type) { checkNotNull(ids, "ids is null"); checkNotNull(listener, "listener is null"); checkNotNull(type, "type is null"); checkState(isOpen(), "db is closed"); final int characteristics = IMMUTABLE | NONNULL | DISTINCT; final boolean parallel = false; Stream<T> stream; stream = StreamSupport .stream(spliteratorUnknownSize(ids.iterator(), characteristics), parallel)// .map((id) -> { T obj = getIfPresent(id, type); if (null == obj) { listener.notFound(id); } else { listener.found(id, null); } return obj; })// .filter((o) -> o != null); return stream.iterator(); }
@Override public void deleteAll(Iterator<ObjectId> ids, BulkOpListener listener) { checkNotNull(ids, "argument objectId is null"); checkNotNull(listener, "argument listener is null"); checkWritable(); final boolean checkExists = !BulkOpListener.NOOP_LISTENER.equals(listener); byte[] keybuff = new byte[ObjectId.NUM_BYTES]; try (RocksDBReference dbRef = dbhandle.getReference(); ReadOptions ro = new ReadOptions()) { ro.setFillCache(false); ro.setVerifyChecksums(false); try (WriteOptions writeOps = new WriteOptions(); // WriteBatch batch = new WriteBatch()) { writeOps.setSync(true); while (ids.hasNext()) { ObjectId id = ids.next(); id.getRawValue(keybuff); if (!checkExists || exists(dbRef, ro, keybuff)) { batch.delete(keybuff); listener.deleted(id); } else { listener.notFound(id); } } dbRef.db().write(writeOps, batch); } catch (RocksDBException e) { throw new RuntimeException(e); } } }
@Override protected ObjectInfo<T> computeNext() { checkState(isOpen(), "Database is closed"); NodeRef ref; while ((ref = getNext(refs, null)) != null) { ObjectId id = ref.getObjectId(); RevObject obj = getIfPresent(id); if (obj == null || !type.isInstance(obj)) { listener.notFound(id); } else { listener.found(id, null); return ObjectInfo.of(ref, type.cast(obj)); } } return endOfData(); } };
@Override protected ObjectInfo<T> computeNext() { checkState(isOpen(), "Database is closed"); NodeRef ref; while ((ref = getNext(refs, null)) != null) { ObjectId id = ref.getObjectId(); RevObject obj = getIfPresent(id); if (obj == null || !type.isInstance(obj)) { listener.notFound(id); } else { listener.found(id, null); return ObjectInfo.of(ref, type.cast(obj)); } } return endOfData(); } };
@Test public void testCompositeListenerWithNoOp() { CountingListener countingListener = BulkOpListener.newCountingListener(); BulkOpListener listener = BulkOpListener.composite(countingListener, BulkOpListener.NOOP_LISTENER); assertEquals(countingListener, listener); listener = BulkOpListener.composite(BulkOpListener.NOOP_LISTENER, countingListener); assertEquals(countingListener, listener); listener = BulkOpListener.composite(BulkOpListener.NOOP_LISTENER, BulkOpListener.NOOP_LISTENER); assertEquals(BulkOpListener.NOOP_LISTENER, listener); listener.found(ObjectId.NULL, 0); listener.deleted(ObjectId.NULL); listener.inserted(ObjectId.NULL, 0); listener.notFound(ObjectId.NULL); }