List of usage examples for com.google.common.util.concurrent Futures addCallback
public static <V> void addCallback(final ListenableFuture<V> future, final FutureCallback<? super V> callback, Executor executor)
From source file:com.salesforce.grpc.contrib.FutureChain.java
/** * @see Futures#addCallback(ListenableFuture, FutureCallback, Executor) *///from w w w. ja v a 2 s. c o m public FutureChain<T> addCallback(FutureCallback<? super T> callback) { Futures.addCallback(future, callback, executor); return this; }
From source file:com.netflix.genie.agent.execution.services.impl.grpc.GRpcAgentJobKillServiceImpl.java
private void registerForRemoteKillNotification(final String jobId) { final ListenableFuture<JobKillRegistrationResponse> future = this.client .registerForKillNotification(JobKillRegistrationRequest.newBuilder().setJobId(jobId).build()); cancelPreviousAndUpdateJobKillFuture(future); Futures.addCallback(future, new JobKillFutureCallback(jobId), this.killTaskExecutor); }
From source file:com.skcraft.concurrency.DeferredImpl.java
@Override public Deferred<I> handleAsync(final Callback<I> onSuccess, final Callback<Throwable> onFailure, ListeningExecutorService executor) { Futures.addCallback(future, new FutureCallback<I>() { @Override//w w w . ja va2s .c o m public void onSuccess(I result) { onSuccess.handle(result); } @Override public void onFailure(Throwable t) { onFailure.handle(t); } }, executor); return this; }
From source file:com.orangerhymelabs.helenus.cassandra.table.TableService.java
public void read(String database, String table, FutureCallback<Table> callback) { Futures.addCallback(read(database, table), callback, MoreExecutors.directExecutor()); }
From source file:com.skcraft.plume.common.util.concurrent.DeferredImpl.java
@Override public Deferred<I> done(Callback<I> onSuccess, ListeningExecutorService executor) { Futures.addCallback(future, new FutureCallback<I>() { @Override/*from w ww . j a v a2 s . co m*/ public void onSuccess(I result) { try { onSuccess.handle(result); } catch (Exception e) { log.log(Level.WARNING, "Exception thrown during callback", e); } } @Override public void onFailure(Throwable t) { } }, executor); return this; }
From source file:com.orangerhymelabs.helenus.cassandra.database.DatabaseService.java
public void delete(String name, FutureCallback<Boolean> callback) { Futures.addCallback(delete(name), callback, MoreExecutors.directExecutor()); }
From source file:com.android.tools.idea.apk.viewer.ApkViewPanel.java
public ApkViewPanel(@NotNull ApkParser apkParser) { // construct the main tree along with the uncompressed sizes ListenableFuture<DefaultMutableTreeNode> treeStructureFuture = apkParser.constructTreeStructure(); FutureCallBackAdapter<DefaultMutableTreeNode> setRootNode = new FutureCallBackAdapter<DefaultMutableTreeNode>() { @Override/*w w w.j a v a2 s . c om*/ public void onSuccess(DefaultMutableTreeNode result) { setRootNode(result); } }; Futures.addCallback(treeStructureFuture, setRootNode, EdtExecutor.INSTANCE); // in parallel, kick off computation of the compressed archive, and once its available, refresh the tree ListenableFuture<DefaultMutableTreeNode> compressedTreeFuture = apkParser .constructTreeStructureWithCompressedSizes(); FutureCallBackAdapter<DefaultMutableTreeNode> refreshTree = new FutureCallBackAdapter<DefaultMutableTreeNode>() { @Override public void onSuccess(DefaultMutableTreeNode result) { refreshTree(); } }; Futures.addCallback(compressedTreeFuture, refreshTree, EdtExecutor.INSTANCE); mySizeComponent.setToolTipText(AndroidBundle.message("apk.viewer.size.types.tooltip")); myContainer.setBorder(IdeBorderFactory.createBorder(SideBorder.BOTTOM)); myCompareWithButton.addActionListener(e -> { if (myListener != null) { myListener.selectApkAndCompare(); } }); // identify and set the application name and version myNameAsyncIcon.setVisible(true); myNameComponent.append("Parsing Manifest"); Futures.addCallback(apkParser.getApplicationInfo(), new FutureCallBackAdapter<AndroidApplicationInfo>() { @Override public void onSuccess(AndroidApplicationInfo result) { setAppInfo(result); } }, EdtExecutor.INSTANCE); // obtain and set the download size mySizeAsyncIcon.setVisible(true); mySizeComponent.append("Estimating download size.."); Futures.addCallback( Futures.successfulAsList(apkParser.getUncompressedApkSize(), apkParser.getCompressedFullApkSize()), new FutureCallBackAdapter<List<Long>>() { @Override public void onSuccess(List<Long> result) { long uncompressed = result.get(0); Long compressed = result.get(1); setApkSizes(uncompressed, compressed == null ? 0 : compressed.longValue()); } }, EdtExecutor.INSTANCE); }
From source file:com.orangerhymelabs.helenus.cassandra.view.ViewService.java
public void readAll(String database, String table, FutureCallback<List<View>> callback) { Futures.addCallback(readAll(database, table), callback, MoreExecutors.directExecutor()); }
From source file:org.whispersystems.textsecuregcm.push.APNSender.java
public ListenableFuture<ApnResult> sendMessage(final ApnMessage message) throws TransientPushFailureException { String topic = bundleId;/* w w w.j av a 2 s.c o m*/ if (message.isVoip()) { topic = topic + ".voip"; } ListenableFuture<ApnResult> future = apnsClient.send(message.getApnId(), topic, message.getMessage(), new Date(message.getExpirationTime())); Futures.addCallback(future, new FutureCallback<ApnResult>() { @Override public void onSuccess(@Nullable ApnResult result) { if (result == null) { logger.warn("*** RECEIVED NULL APN RESULT ***"); } else if (result.getStatus() == ApnResult.Status.NO_SUCH_USER) { handleUnregisteredUser(message.getApnId(), message.getNumber(), message.getDeviceId()); } else if (result.getStatus() == ApnResult.Status.GENERIC_FAILURE) { logger.warn("*** Got APN generic failure: " + result.getReason() + ", " + message.getNumber()); } } @Override public void onFailure(@Nullable Throwable t) { logger.warn("Got fatal APNS exception", t); } }, executor); return future; }
From source file:com.android.contacts.util.concurrent.ListenableFutureLoader.java
@Override protected void onForceLoad() { mFuture = loadData();/*from w w w . j ava2 s. co m*/ Futures.addCallback(mFuture, new FutureCallback<D>() { @Override public void onSuccess(D result) { if (mLoadedData == null || !isSameData(mLoadedData, result)) { deliverResult(result); } mLoadedData = result; commitContentChanged(); } @Override public void onFailure(Throwable t) { if (t instanceof CancellationException) { Log.i(TAG, "Loading cancelled", t); rollbackContentChanged(); } else { Log.e(TAG, "Loading failed", t); } } }, mUiExecutor); }