long entryId = firstEntry; while (entryId <= lastEntry && entryId < entries.size()) { seq.add(new LedgerEntry(entries.get((int) entryId++).duplicate()));
@Override public void onSuccess(LedgerEntries ledgerEntries) { long entryId = -1L; for (org.apache.bookkeeper.client.api.LedgerEntry entry : ledgerEntries) { resultList.add(new LedgerEntry((LedgerEntryImpl) entry)); entryId = entry.getEntryId(); } try { ledgerEntries.close(); } catch (Exception e) { // bk should not throw any exceptions here } ++entryId; readNext(entryId); }
@Override public void onSuccess(LedgerEntries entries) { cb.readComplete( Code.OK, LedgerHandle.this, IteratorUtils.asEnumeration( Iterators.transform(entries.iterator(), le -> { LedgerEntry entry = new LedgerEntry((LedgerEntryImpl) le); le.close(); return entry; })), ctx); }
@Override protected void submitCallback(int code) { LedgerEntryRequest request; while (!seq.isEmpty() && (request = seq.get(0)) != null) { if (!request.isComplete()) { return; } seq.remove(0); long latencyNanos = MathUtils.elapsedNanos(requestTimeNanos); LedgerEntry entry; if (BKException.Code.OK == request.getRc()) { clientCtx.getClientStats().getReadOpLogger() .registerSuccessfulEvent(latencyNanos, TimeUnit.NANOSECONDS); // callback with completed entry entry = new LedgerEntry(request.entryImpl); } else { clientCtx.getClientStats().getReadOpLogger() .registerFailedEvent(latencyNanos, TimeUnit.NANOSECONDS); entry = null; } request.close(); listener.onEntryComplete(request.getRc(), lh, entry, ctx); } // if all entries are already completed. cancelSpeculativeTask(true); }
private void submitCallback(int rc) { long latencyMicros = MathUtils.elapsedMicroSec(requestTimeNano); LedgerEntry entry; cancelSpeculativeTask(true); if (BKException.Code.OK != rc) { clientCtx.getClientStats().getReadLacAndEntryOpLogger() .registerFailedEvent(latencyMicros, TimeUnit.MICROSECONDS); entry = null; } else { // could received advanced lac, with no entry clientCtx.getClientStats().getReadLacAndEntryOpLogger() .registerSuccessfulEvent(latencyMicros, TimeUnit.MICROSECONDS); if (request.entryImpl.getEntryBuffer() != null) { entry = new LedgerEntry(request.entryImpl); } else { entry = null; } } request.close(); cb.readLastConfirmedAndEntryComplete(rc, lastAddConfirmed, entry); }