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

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

Introduction

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

Prototype

@Override
    public boolean set(@Nullable V value) 

Source Link

Usage

From source file:org.opendaylight.aaa.cert.impl.AaaCertProvider.java

@Override
public Future<RpcResult<Void>> setODLCertifcate(final SetODLCertifcateInput input) {
    LOG.info("Certificate will be add to ODL keystore.");
    final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
    //adding ca to the alias of signed certificate by Certificate Authority.
    //can not have 2 certifciate under the same alias.
    ctlKeyStore = new CtlKeystoreBuilder(ctlKeyStore).setAlias("ca" + ctlKeyStore.getAlias()).build();
    if (odlKeyTool.addCertificate(ctlKeyStore.getName(), ctlKeyStore.getStorePassword(), input.getOdlCert(),
            ctlKeyStore.getAlias())) {/*from   w w w .ja  v a  2s  . c om*/
        futureResult.set(RpcResultBuilder.<Void>success().build());
    } else {
        futureResult.set(RpcResultBuilder.<Void>failed().build());
    }
    return futureResult;
}

From source file:com.microsoft.services.sharepoint.SharePointClient.java

public ListenableFuture<JSONObject> getUserByID(String id) {
    final SettableFuture<JSONObject> result = SettableFuture.create();

    ListenableFuture<JSONObject> request = executeRequestJson(mServerUrl + "_api/web/getuserbyid(" + id + ")",
            "GET");

    Futures.addCallback(request, new FutureCallback<JSONObject>() {
        @Override//from w ww .j  av a  2  s  . c o m
        public void onFailure(Throwable t) {
            result.setException(t);
        }

        @Override
        public void onSuccess(JSONObject json) {
            result.set(json);
        }
    });
    return result;
}

From source file:de.uniluebeck.itm.coapserver.NotObservableOverviewWebservice.java

@Override
public void processCoapRequest(SettableFuture responseFuture, CoapRequest request,
        InetSocketAddress remoteAddress) {
    Log.d(TAG, "Service " + getPath() + " received request: " + request);
    try {/* www  .  j  a  v a2 s  . co  m*/
        if (request.getMessageCode() == MessageCode.Name.GET.getNumber()) {
            processGet(responseFuture, request);
        } else if (request.getMessageCode() == MessageCode.Name.PUT.getNumber()) {
            processPut(responseFuture, request);
        } else {
            responseFuture.set(
                    new CoapResponse(request.getMessageTypeName(), MessageCode.Name.METHOD_NOT_ALLOWED_405));
        }
    } catch (Exception e) {
        try {
            responseFuture.set(
                    new CoapResponse(request.getMessageTypeName(), MessageCode.Name.INTERNAL_SERVER_ERROR_500));
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }

}

From source file:com.navercorp.nbasearc.gcp.Gateway.java

ListenableFuture<?> init(SingleThreadEventLoopTrunk eventLoopTrunk, int reconnectInterval) {
    final SettableFuture<?> sf = SettableFuture.create();

    for (int i = 0; i < concnt; i++) {
        cons[i] = PhysicalConnection.create(ip, port, eventLoopTrunk.roundrobinEventLoop(), this,
                reconnectInterval);//from w ww. j av a 2s  . co  m

        final ListenableFuture<?> conFuture = cons[i].connect();
        conFuture.addListener(new Runnable() {
            @Override
            public void run() {
                try {
                    conFuture.get();
                    sf.set(null);
                } catch (InterruptedException e) {
                    log.error("Exception occured while connecting to {}", Gateway.this, e);
                } catch (ExecutionException e) {
                    log.error("Exception occured while connecting to {}", Gateway.this, e);
                }
            }
        }, MoreExecutors.directExecutor());
    }

    return sf;
}

From source file:org.onosproject.store.flowext.impl.DefaultFlowRuleExtRouter.java

/**
 * Invoked on the completion of a storeBatch operation.
 *
 * @param event flow rule batch event/*ww w  .j a v a  2s  .co  m*/
 */
@Override
public void batchOperationComplete(FlowRuleBatchEvent event) {
    // TODO Auto-generated method stub
    final Long batchId = event.subject().batchId();
    SettableFuture<FlowExtCompletedOperation> future = pendingExtendFutures.getIfPresent(batchId);
    if (future != null) {
        FlowRuleBatchRequest request = event.subject();
        CompletedBatchOperation result = event.result();
        FlowExtCompletedOperation completed = new FlowExtCompletedOperation(request.batchId(),
                result.isSuccess(), result.failedItems());
        future.set(completed);
        pendingExtendFutures.invalidate(batchId);
    }
}

From source file:se.sics.gvod.manager.VoDManagerImpl.java

@Override
public void download(VideoInfo videoInfo, SettableFuture<Result<Boolean>> opFuture) {
    LOG.info("{} download:{} request", logPrefix, videoInfo.getName());
    FileStatus videoStatus = videos.get(videoInfo.getName());
    if (videoStatus == FileStatus.DOWNLOADING || videoStatus == FileStatus.UPLOADING
            || videoStatus == FileStatus.PENDING) {
        opFuture.set(Result.ok(true));
        return;//from w w w  . j av a 2  s  . c o m
    }
    videos.put(videoInfo.getName(), FileStatus.PENDING);
    DownloadVideo.Request req = new DownloadVideo.Request(videoInfo.getName(),
            OverlayIdFactory.fromInt(videoInfo.getOverlayId()));
    trigger(req, vodPort);
    pendingJobs.put(req.id, opFuture);
}

From source file:io.crate.executor.transport.AlterTableOperation.java

private void applyMultiFutureCallback(final SettableFuture<?> result, List<ListenableFuture<Long>> futures) {
    MultiFutureCallback<Long> multiFutureCallback = new MultiFutureCallback<>(futures.size(),
            new FutureCallback<List<Long>>() {
                @Override/*ww  w. ja v a 2 s . c o m*/
                public void onSuccess(@Nullable List<Long> future) {
                    result.set(null);
                }

                @Override
                public void onFailure(@Nonnull Throwable t) {
                    result.setException(t);
                }
            });
    for (ListenableFuture<Long> future : futures) {
        Futures.addCallback(future, multiFutureCallback);
    }
}

From source file:se.sics.gvod.manager.VoDManagerImpl.java

@Override
public void upload(VideoInfo videoInfo, SettableFuture<Result<Boolean>> opFuture) {
    LOG.info("{} upload:{} request", logPrefix, videoInfo.getName());
    if (pendingUploads.remove(videoInfo.getName() == null)) {
        LOG.warn("{} video:{} not pending upload - cannot initiate upload",
                new Object[] { logPrefix, videoInfo.getName() });
        opFuture.set(Result.internalError("video - bad state"));
        return;/*  w w  w  .  j ava2  s.  c  o m*/
    }
    videos.put(videoInfo.getName(), FileStatus.PENDING);
    UploadVideo.Request req = new UploadVideo.Request(videoInfo.getName(),
            OverlayIdFactory.fromInt(videoInfo.getOverlayId()));
    trigger(req, vodPort);
    pendingJobs.put(req.id, opFuture);
}

From source file:com.microsoft.windowsazure.mobileservices.table.sync.MobileServiceSyncTable.java

/**
 * Performs a query against the remote table and stores results.
 *
 * @param query    an optional query to filter results
 * @param queryKey key to identify the query
 * @return A ListenableFuture that is done when results have been pulled.
 *//*  w ww .j a v  a 2  s . c o  m*/
public ListenableFuture<Void> pull(Query query, String queryId) {
    ListenableFuture<Void> pull = this.mInternalTable.pull(query, queryId);

    final SettableFuture<Void> result = SettableFuture.create();

    Futures.addCallback(pull, new FutureCallback<Void>() {

        @Override
        public void onFailure(Throwable throwable) {
            result.setException(throwable);
        }

        @Override
        public void onSuccess(Void value) {
            result.set(value);
        }
    });

    return result;
}

From source file:org.midonet.midolman.state.zkManagers.TunnelZoneZkManager.java

public Set<TunnelZone.HostConfig> getZoneMembershipsForHosts(UUID zoneId, Set<UUID> hosts)
        throws StateAccessException, SerializationException {
    Map<UUID, Future<byte[]>> futures = new HashMap<UUID, Future<byte[]>>();
    for (UUID host : hosts) {
        String zoneMembershipPath = paths.getTunnelZoneMembershipPath(zoneId, host);
        final SettableFuture<byte[]> f = SettableFuture.create();
        zk.asyncGet(zoneMembershipPath, new DirectoryCallback<byte[]>() {
            @Override/* w  w w .j av a2  s.  com*/
            public void onTimeout() {
                f.setException(new TimeoutException());
            }

            @Override
            public void onError(KeeperException e) {
                f.setException(e);
            }

            @Override
            public void onSuccess(byte[] data) {
                f.set(data);
            }
        }, null);
        futures.put(host, f);
    }

    Set<TunnelZone.HostConfig> configs = new HashSet<TunnelZone.HostConfig>();
    for (Map.Entry<UUID, Future<byte[]>> entry : futures.entrySet()) {
        try {
            TunnelZone.HostConfig.Data config = serializer.deserialize(entry.getValue().get(),
                    TunnelZone.HostConfig.Data.class);
            configs.add(new TunnelZone.HostConfig(entry.getKey(), config));
        } catch (InterruptedException ie) {
            Thread.currentThread().interrupt();
            throw new StateAccessException(ie);
        } catch (ExecutionException ee) {
            if (ee.getCause() instanceof KeeperException.NoNodeException) {
                // ignore, membership simply didn't exist
            } else {
                throw new StateAccessException(ee.getCause());
            }
        }
    }
    return configs;
}