Example usage for com.google.common.util.concurrent SettableFuture create

List of usage examples for com.google.common.util.concurrent SettableFuture create

Introduction

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

Prototype

public static <V> SettableFuture<V> create() 

Source Link

Document

Creates a new SettableFuture that can be completed or cancelled by a later method call.

Usage

From source file:org.opendaylight.openflowplugin.impl.statistics.StatisticsContextImpl.java

@Override
public ListenableFuture<Boolean> gatherDynamicData() {
    final ListenableFuture<Boolean> errorResultFuture = deviceConnectionCheck();
    if (errorResultFuture != null) {
        return errorResultFuture;
    }/* ww  w  . jav a  2  s .  c om*/
    final Iterator<MultipartType> statIterator = collectingStatType.iterator();
    final SettableFuture<Boolean> settableStatResultFuture = SettableFuture.create();
    statChainFuture(statIterator, settableStatResultFuture);
    return settableStatResultFuture;
}

From source file:es.udc.pfc.xmpp.component.AbstractXMPPComponent.java

/**
 * Send an IQ request, handling the response using a Future.
 * /* w  w  w .ja v a 2s. co m*/
 * @param iq the IQ request to be sent
 * @return a Future 
 */
public final ListenableFuture<IQ> sendIQ(final IQ iq) {
    checkNotNull(iq);
    checkArgument(iq.isRequest() && !Strings.isNullOrEmpty(iq.getId()));

    if (futureHandlers.containsKey(iq.getId())) {
        log.warning("ID " + iq.getId() + " already being handled.");
        return futureHandlers.get(iq.getId());
    }

    final SettableFuture<IQ> future = SettableFuture.create();
    futureHandlers.put(iq.getId(), future);
    send(iq);
    return future;
}

From source file:io.datakernel.service.ServiceAdapters.java

public static ServiceAdapter<Eventloop> forEventloop(final ThreadFactory threadFactory) {
    return new ServiceAdapter<Eventloop>() {
        @Override//from w  ww . jav a 2  s  . c  om
        public Service toService(final Eventloop eventloop, final Executor executor) {
            return new Service() {
                volatile SettableFuture<?> stopFuture;

                @Override
                public ListenableFuture<?> start() {
                    final SettableFuture<?> future = SettableFuture.create();
                    threadFactory.newThread(new Runnable() {
                        @Override
                        public void run() {
                            eventloop.keepAlive(true);
                            future.set(null);
                            eventloop.run();
                            if (stopFuture != null) {
                                stopFuture.set(null);
                            }
                        }
                    }).start();
                    return future;
                }

                @Override
                public ListenableFuture<?> stop() {
                    stopFuture = SettableFuture.create();
                    eventloop.execute(new Runnable() {
                        @Override
                        public void run() {
                            eventloop.keepAlive(false);
                        }
                    });
                    return stopFuture;
                }
            };
        }
    };
}

From source file:org.apache.qpid.server.security.auth.manager.AbstractAuthenticationManager.java

private ListenableFuture<Void> performDelete() {
    final SettableFuture<Void> futureResult = SettableFuture.create();
    addFutureCallback(closeAsync(), new FutureCallback<Void>() {
        @Override/*from  w ww . j  av a 2 s  . co  m*/
        public void onSuccess(final Void result) {
            try {
                tidyUp();
                futureResult.set(null);
            } catch (Exception e) {
                futureResult.setException(e);
            }
        }

        @Override
        public void onFailure(final Throwable t) {
            try {
                tidyUp();
            } finally {
                futureResult.setException(t);
            }
        }

        private void tidyUp() {
            deleted();
            setState(State.DELETED);
            _eventLogger.message(AuthenticationProviderMessages.DELETE(getName()));
        }
    }, getTaskExecutor());

    return futureResult;
}

From source file:org.apache.heron.statemgr.NullStateManager.java

@Override
public ListenableFuture<TopologyMaster.MetricsCacheLocation> getMetricsCacheLocation(WatchCallback watcher,
        String topologyName) {
    return SettableFuture.create();
}

From source file:org.opendaylight.netvirt.vpnmanager.VpnRpcServiceImpl.java

/**
 * Remove label for the given ip prefix from the associated VPN.
 */// ww w . j ava2s  .  c om
@Override
public Future<RpcResult<Void>> removeVpnLabel(RemoveVpnLabelInput input) {
    String vpnName = input.getVpnName();
    String ipPrefix = input.getIpPrefix();
    String rd = VpnUtil.getVpnRd(dataBroker, vpnName);
    SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
    VpnUtil.releaseId(idManager, VpnConstants.VPN_IDPOOL_NAME,
            VpnUtil.getNextHopLabelKey((rd != null) ? rd : vpnName, ipPrefix));
    futureResult.set(RpcResultBuilder.<Void>success().build());
    return futureResult;
}

From source file:com.vmware.photon.controller.common.thrift.ClientPoolImpl.java

@Override
public synchronized ListenableFuture<C> acquire() {
    if (promises.size() < options.getMaxWaiters()) {
        SettableFuture<C> future = SettableFuture.create();
        Promise<C> promise = new Promise<>(future);
        promises.add(promise);/*  w ww.  j  a v  a  2  s.co  m*/
        processPromises();
        logger.info("options.getTimeoutMs() is {}", options.getTimeoutMs());
        if (options.getTimeoutMs() > 0 && !future.isDone()) {
            setTimeout(promise);
        }
        logger.info("{} Promise processed {}", options.getServiceName(), promise);
        return future;
    }

    return Futures.immediateFailedFuture(new ClientPoolException("Too many waiters"));
}

From source file:org.opendaylight.streamhandler.impl.StreamhandlerImpl.java

@Override
public Future<RpcResult<Void>> persistEvent(PersistEventInput input) {
    final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
    boolean result = true;
    try {//from w w w .j a va 2  s . c o  m
        // Initialize client with the remote Flume agent's host and port
        if (client == null) {
            client = new PersistEvent(commonServices.flumeHostname, commonServices.flumePort);
        }
        result = client.sendDataToFlume(input);
    } catch (Exception e) {
        futureResult.set(RpcResultBuilder.<Void>failed().build());
        LOG.error("Unable to save data " + e.getMessage(), e);
    }
    if (!result) {
        futureResult.set(RpcResultBuilder.<Void>failed().build());
    } else {
        futureResult.set(RpcResultBuilder.<Void>success().build());
    }
    return futureResult;
}

From source file:org.opendaylight.controller.cluster.databroker.actors.dds.RemoteProxyTransaction.java

@Override
CheckedFuture<Boolean, ReadFailedException> doExists(final YangInstanceIdentifier path) {
    final SettableFuture<Boolean> future = SettableFuture.create();
    return sendReadRequest(new ExistsTransactionRequest(getIdentifier(), client().self(), path),
            t -> completeExists(future, t), future);
}