@Override public void asyncClose(AsyncCallback.CloseCallback callback, Object ctx) { lh.asyncClose(callback, ctx); }
void asyncCloseCursorLedger(final AsyncCallbacks.CloseCallback callback, final Object ctx) { LedgerHandle lh = cursorLedger; ledger.mbean.startCursorLedgerCloseOp(); log.info("[{}] [{}] Closing metadata ledger {}", ledger.getName(), name, lh.getId()); lh.asyncClose(new CloseCallback() { @Override public void closeComplete(int rc, LedgerHandle lh, Object ctx) { ledger.mbean.endCursorLedgerCloseOp(); if (rc == BKException.Code.OK) { callback.closeComplete(ctx); } else { callback.closeFailed(createManagedLedgerException(rc), ctx); } } }, ctx); }
refhandle.handle.asyncClose(new AsyncCallback.CloseCallback() { @Override public void closeComplete(int rc, LedgerHandle ledgerHandle, Object ctx) {
@Override public void openComplete(int rc, LedgerHandle lh, Object ctx) { if (BKException.Code.OK != rc) { promise.setException(BKException.create(rc)); return; } RefCountedLedgerHandle newRefHandle = new RefCountedLedgerHandle(lh); RefCountedLedgerHandle oldRefHandle = handlesMap.putIfAbsent(ledgerDesc, newRefHandle); if (null != oldRefHandle) { oldRefHandle.addRef(); if (newRefHandle.removeRef()) { newRefHandle.handle.asyncClose(new AsyncCallback.CloseCallback() { @Override public void closeComplete(int i, LedgerHandle ledgerHandle, Object o) { // No action necessary } }, null); } } promise.setValue(ledgerDesc); } }, null);
lh.asyncClose((rc, lh1, ctx1) -> { if (log.isDebugEnabled()) { log.debug("[{}] Close complete for ledger {}: rc = {}", name, lh.getId(), rc);
lh.asyncClose((rc, lh1, ctx1) -> { if (log.isDebugEnabled()) { log.debug("[{}] Close complete for ledger {}: rc = {}", name, lh.getId(), rc);
ledger.asyncClose(this, ctx); } else { updateLatency();
@Override public void asyncClose(AsyncCallback.CloseCallback callback, Object ctx) { lh.asyncClose(callback, ctx); }
@Override public void operationComplete() { cursorLedger.asyncClose(new CloseCallback() { @Override public void closeComplete(int rc, LedgerHandle lh, Object ctx) { callback.closeComplete(ctx); } }, ctx); }
@Override public void closeLedger(long ledgerID, Consumer<Integer> cb) { LedgerHandle handle = openHandles.remove(ledgerID); handle.asyncClose( (rc, lh, ctx) -> cb.accept(rc), null); }
/** * Close a ledger <i>lh</i>. * * @param lh ledger handle * @return future represents close result. */ public static CompletableFuture<Void> closeLedger(LedgerHandle lh) { final CompletableFuture<Void> closePromise = new CompletableFuture<Void>(); lh.asyncClose(new AsyncCallback.CloseCallback() { @Override public void closeComplete(int rc, LedgerHandle lh, Object ctx) { if (BKException.Code.OK != rc) { FutureUtils.completeExceptionally(closePromise, BKException.create(rc)); } else { FutureUtils.complete(closePromise, null); } } }, null); return closePromise; }
/** * {@inheritDoc} */ @Override public CompletableFuture<Void> closeAsync() { CompletableFuture<Void> result = new CompletableFuture<>(); SyncCloseCallback callback = new SyncCloseCallback(result); asyncClose(callback, null); return result; }
private CompletableFuture<Void> closeLedger(LedgerHandle lh) { CompletableFuture<Void> bkf = new CompletableFuture<>(); lh.asyncClose((rc, ledger, ctx) -> { if (rc != BKException.Code.OK) { bkf.completeExceptionally(BKException.create(rc)); } else { bkf.complete(null); } }, null); return bkf; }
@NotNull private CompletableFuture<Void> closeLedger(LedgerHandle ledgerHandle) { CompletableFuture<Void> future = new CompletableFuture<>(); ledgerHandle.asyncClose((rc, handle, ctx) -> { if (rc != BKException.Code.OK) { future.completeExceptionally(bkException("Failed to close ledger", rc, ledgerHandle.getId(), -1)); } else { future.complete(null); } }, null); return future; }
@Override public void readEntries( long ledgerID, long firstEntryID, long lastEntryID, BiConsumer<Integer, ArrayList<byte[]>> cb) { client.asyncOpenLedgerNoRecovery(ledgerID, BookKeeper.DigestType.CRC32, new byte[0], (rc, lh, ctx) -> { if (rc != 0) { cb.accept(rc, null); return; } System.out.format("Got handle for read %d -> %d on ledger %d%n", firstEntryID, lastEntryID, ledgerID); lh.asyncReadEntries(firstEntryID, lastEntryID, (rc1, lh1, seq, ctx1) -> { System.out.format("Read cb %d -> %d on ledger %d%n", firstEntryID, lastEntryID, ledgerID); ArrayList<byte[]> results = new ArrayList<>(); if (rc1 == 0) { while (seq.hasMoreElements()) { results.add(seq.nextElement().getEntry()); } System.out.format("About to close handle for read %d -> %d on ledger %d%n", firstEntryID, lastEntryID, ledgerID); } lh.asyncClose((rc2, lh2, ctx2) -> { System.out.format("Closed handle for read %d -> %d on ledger %d result %d%n", firstEntryID, lastEntryID, ledgerID, rc2); cb.accept(rc1 == 0 ? rc2 : rc1, results); }, null); }, null); }, null); } }
void asyncCloseCursorLedger(final AsyncCallbacks.CloseCallback callback, final Object ctx) { LedgerHandle lh = cursorLedger; ledger.mbean.startCursorLedgerCloseOp(); log.info("[{}] [{}] Closing metadata ledger {}", ledger.getName(), name, lh.getId()); lh.asyncClose(new CloseCallback() { @Override public void closeComplete(int rc, LedgerHandle lh, Object ctx) { ledger.mbean.endCursorLedgerCloseOp(); if (rc == BKException.Code.OK) { callback.closeComplete(ctx); } else { callback.closeFailed(new ManagedLedgerException(BKException.getMessage(rc)), ctx); } } }, ctx); }
void asyncCloseCursorLedger(final AsyncCallbacks.CloseCallback callback, final Object ctx) { LedgerHandle lh = cursorLedger; ledger.mbean.startCursorLedgerCloseOp(); log.info("[{}] [{}] Closing metadata ledger {}", ledger.getName(), name, lh.getId()); lh.asyncClose(new CloseCallback() { @Override public void closeComplete(int rc, LedgerHandle lh, Object ctx) { ledger.mbean.endCursorLedgerCloseOp(); if (rc == BKException.Code.OK) { callback.closeComplete(ctx); } else { callback.closeFailed(createManagedLedgerException(rc), ctx); } } }, ctx); }
synchronized (this) { if (isClosed()) { lh.asyncClose(new AsyncCallback.CloseCallback() { @Override public void closeComplete(int rc, LedgerHandle lh, Object ctx) {
ledger.asyncClose(this, ctx); } else { updateLatency();
ledger.asyncClose(this, ctx); } else { updateLatency();