Example usage for com.google.common.util.concurrent Futures addCallback

List of usage examples for com.google.common.util.concurrent Futures addCallback

Introduction

In this page you can find the example usage for com.google.common.util.concurrent Futures addCallback.

Prototype

public static <V> void addCallback(ListenableFuture<V> future, FutureCallback<? super V> callback) 

Source Link

Document

Registers separate success and failure callbacks to be run when the Future 's computation is java.util.concurrent.Future#isDone() complete or, if the computation is already complete, immediately.

Usage

From source file:com.facebook.presto.operator.SettableLookupSourceSupplier.java

@Override
public void release() {
    if (referenceCount.decrementAndGet() == 0) {
        // We own the shared lookup source, so we need to free their memory
        Futures.addCallback(lookupSourceFuture, new FutureCallback<SharedLookupSource>() {
            @Override/*from  ww  w . j  ava  2  s  .com*/
            public void onSuccess(SharedLookupSource result) {
                result.freeMemory();
            }

            @Override
            public void onFailure(Throwable t) {
                // ignored
            }
        });
    }
}

From source file:org.anhonesteffort.p25.Imbeef.java

public void run() {
    ImbeefMetrics.init(config, new MetricRegistry());

    ImbeConverterFactory converters = new ImbeConverterFactory();
    WaveHeaderFactory headers = new WaveHeaderFactory();

    ExecutorService s3Pool = Executors.newFixedThreadPool(config.getS3PoolSize());
    TransferManagerFactory transfers = new TransferManagerFactory(config, s3Pool);

    CallPipelineFactory pipelines = new CallPipelineFactory(config, converters, headers, transfers.create());
    CallManager callManager = new CallManager(config, pipelines);
    KinesisP25ConsumerFactory consumers = new KinesisP25ConsumerFactory(callManager);

    Worker worker = new Worker.Builder().recordProcessorFactory(consumers)
            .config(new KclConfigFactory(config).create()).build();

    Futures.addCallback(consumers.getErrorFuture(), new KclErrorCallback(worker, s3Pool));

    worker.run();/* w w w .java2 s . c o  m*/
}

From source file:com.continuuity.weave.internal.zookeeper.RewatchOnExpireZKClient.java

@Override
public OperationFuture<NodeChildren> getChildren(String path, Watcher watcher) {
    final RewatchOnExpireWatcher wrappedWatcher = new RewatchOnExpireWatcher(this, ActionType.CHILDREN, path,
            watcher);/*from   ww w.  j  a  v  a2  s  .  co  m*/
    OperationFuture<NodeChildren> result = super.getChildren(path, wrappedWatcher);
    Futures.addCallback(result, new FutureCallback<NodeChildren>() {
        @Override
        public void onSuccess(NodeChildren result) {
            wrappedWatcher.setLastResult(result);
        }

        @Override
        public void onFailure(Throwable t) {
            // No-op
        }
    });
    return result;
}

From source file:org.apache.bookkeeper.common.util.ListenableFutures.java

/**
 * Convert a {@link ListenableFuture} to a {@link CompletableFuture} and do a transformation.
 *
 * @param listenableFuture listenable future
 * @param mapFn            a map function that transform results
 * @return the completable future after transformation.
 *//*from  w  ww. j av a2  s. co  m*/
public static <T, R> CompletableFuture<R> fromListenableFuture(ListenableFuture<T> listenableFuture,
        ExceptionalFunction<? super T, ? extends R> mapFn) {
    CompletableFuture<R> completableFuture = createFuture();
    Futures.addCallback(listenableFuture, new FutureCallback<T>() {
        @Override
        public void onSuccess(T result) {
            try {
                R uResult = mapFn.apply(result);
                completableFuture.complete(uResult);
            } catch (Exception e) {
                completableFuture.completeExceptionally(e);
            }
        }

        @Override
        public void onFailure(Throwable t) {
            completableFuture.completeExceptionally(t);
        }
    });
    return completableFuture;
}

From source file:com.noorq.casser.support.Scala.java

public static <T, A, B, C, D> Future<Fun.Tuple5<T, A, B, C, D>> asFuture(ListenableFuture<T> future, A a, B b,
        C c, D d) {// w  w  w .ja  v a  2 s  .  co m
    final scala.concurrent.Promise<Fun.Tuple5<T, A, B, C, D>> promise = new DefaultPromise<Fun.Tuple5<T, A, B, C, D>>();
    Futures.addCallback(future, new FutureCallback<T>() {
        @Override
        public void onSuccess(T result) {
            promise.success(new Fun.Tuple5<T, A, B, C, D>(result, a, b, c, d));
        }

        @Override
        public void onFailure(Throwable t) {
            promise.failure(t);
        }
    });
    return promise.future();
}

From source file:com.msopentech.o365.outlookServices.OutlookServicesMethodsImpl.java

/**
 * Adds default callback that send future's result back to plugin
 * This is specially for raw SDK methods which returns a string typed future
 *
 * @param future Future to add callback to
 * @param context Plugin context used to send future result back to plugin
 *///from   w  w w .ja v  a  2  s  . com
static void addRawCordovaCallback(final ListenableFuture<String> future, final CallbackContext context) {
    Futures.addCallback(future, new FutureCallback<String>() {
        @Override
        public void onSuccess(String s) {
            PluginResult result = s == null ? new PluginResult(PluginResult.Status.OK)
                    : new PluginResult(PluginResult.Status.OK, s);

            context.sendPluginResult(result);
        }

        @Override
        public void onFailure(Throwable throwable) {
            String error = throwable.getMessage();
            if (throwable instanceof ODataException) {
                String response = new String(((ODataException) throwable).getODataResponse().getPayload());
                // since error object is encapsulated into response's object
                // try to get it from response and return instead of raw throwable's message
                try {
                    JSONObject errorMessage = new JSONObject(response);
                    error = errorMessage.get("error").toString();
                } catch (JSONException ignored) {
                }
            }
            context.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, error));
        }
    });
}

From source file:com.orangerhymelabs.helenus.cassandra.table.ViewService.java

public void read(String database, String table, String view, FutureCallback<View> callback) {
    Futures.addCallback(read(database, table, view), callback);
}

From source file:org.opendaylight.tl1.impl.MDSal.java

public static void writeToDeviceRegistry(String ip, String port) {
    WriteTransaction transaction = dbroker.newWriteOnlyTransaction();
    InstanceIdentifier<DeviceRegistryEntry> iid = toInstaceIdentifier(ip);
    DeviceRegistryEntry entry = new DeviceRegistryEntryBuilder().setIp(ip).setPort(port).build();
    transaction.put(LogicalDatastoreType.OPERATIONAL, iid, entry);
    CheckedFuture<Void, TransactionCommitFailedException> future = transaction.submit();
    Futures.addCallback(future,
            new LoggingFuturesCallBack<Void>("Failed to write greeting to greeting registry", LOG));

}

From source file:io.crate.jobs.SubExecutionContextFuture.java

public void addCallback(FutureCallback<? super CompletionState> callback) {
    Futures.addCallback(internalFuture, callback);
}

From source file:com.facebook.swift.service.unframed.UnframedTestSuite.java

@Test
public void testUnframedAsyncMethod() throws Exception {
    TestServerInfo info = startServer();
    ThriftClientManager clientManager = new ThriftClientManager();
    final CountDownLatch latch = new CountDownLatch(1);
    final ResultCode[] resultHolder = new ResultCode[0];

    ListenableFuture<AsyncScribe> clientFuture = createUnframedClient(clientManager, AsyncScribe.class,
            info.port);/*from   www . j a  va2s  . co m*/
    Futures.addCallback(clientFuture, new FutureCallback<AsyncScribe>() {
        @Override
        public void onSuccess(AsyncScribe client) {
            try {
                ListenableFuture<ResultCode> methodFuture = client
                        .log(Lists.newArrayList(new LogEntry("testCategory", "testMessage")));
                Futures.addCallback(methodFuture, new FutureCallback<ResultCode>() {
                    @Override
                    public void onSuccess(ResultCode result) {
                        resultHolder[0] = result;
                        latch.countDown();
                    }

                    @Override
                    public void onFailure(Throwable t) {
                        latch.countDown();
                    }
                });
            } catch (TException e) {
                latch.countDown();
            }
        }

        @Override
        public void onFailure(Throwable t) {
            latch.countDown();
        }
    });

    latch.await();

    stopServer(info);
}