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.netconf.topology.impl.OnlySuccessStateAggregator.java

@Override
public ListenableFuture<Node> combineCreateAttempts(List<ListenableFuture<Node>> stateFutures) {
    final SettableFuture<Node> future = SettableFuture.create();
    final ListenableFuture<List<Node>> allAsList = Futures.allAsList(stateFutures);
    Futures.addCallback(allAsList, new FutureCallback<List<Node>>() {
        @Override/*from ww  w .j av  a  2  s  .co  m*/
        public void onSuccess(List<Node> result) {
            for (int i = 0; i < result.size() - 1; i++) {
                if (!result.get(i).equals(result.get(i + 1))) {
                    future.setException(new IllegalStateException("Create futures have different result"));
                }
            }
            future.set(result.get(0));
        }

        @Override
        public void onFailure(Throwable t) {
            LOG.error("One of the combined create attempts failed {}", t);
            future.setException(t);
        }
    }, TypedActor.context().dispatcher());

    return future;
}

From source file:net.javacrumbs.futureconverter.guavarx.ObservableListenableFuture.java

@SuppressWarnings("unchecked")
ObservableListenableFuture(Observable<T> observable) {
    super((Future<T>) SettableFuture.create());
    this.observable = observable;
    subscription = observable.single().subscribe(new Action1<T>() {
        @Override//from   w  ww .  ja  va 2  s.  co  m
        public void call(T t) {
            getWrappedFuture().set(t);
        }
    }, new Action1<Throwable>() {
        @Override
        public void call(Throwable throwable) {
            getWrappedFuture().setException(throwable);
        }
    });
}

From source file:org.opendaylight.bgpcep.pcep.topology.provider.PCEPRequest.java

PCEPRequest(final Metadata metadata) {
    this.future = SettableFuture.create();
    this.metadata = metadata;
    this.state = State.UNSENT;
    this.stopwatch = Stopwatch.createStarted();
    this.timer = new Timer();
}

From source file:com.microsoft.services.orc.core.BaseOrcContainer.java

@Override
protected ListenableFuture<OrcResponse> oDataExecute(final Request request) {
    final SettableFuture<OrcResponse> result = SettableFuture.create();
    final Logger logger = resolver.getLogger();

    try {//from www .  j  a va 2 s  .  com
        request.getUrl().setBaseUrl(this.url);
        String fullUrl = request.getUrl().toString();

        String executionInfo = String.format("URL: %s - HTTP VERB: %s", fullUrl, request.getVerb());
        logger.log("Start preparing OData execution for " + executionInfo, LogLevel.INFO);

        if (request.getContent() != null) {
            logger.log("With " + request.getContent().length + " bytes of payload", LogLevel.INFO);
        } else if (request.getStreamedContent() != null) {
            logger.log("With stream of bytes for payload", LogLevel.INFO);
        }

        HttpTransport httpTransport = resolver.getHttpTransport();

        String userAgent = resolver.getPlatformUserAgent(this.getClass().getCanonicalName());
        request.addHeader(Constants.USER_AGENT_HEADER, userAgent);
        request.addHeader(Constants.TELEMETRY_HEADER, userAgent);
        if (!request.getHeaders().containsKey(Constants.CONTENT_TYPE_HEADER)) {
            request.addHeader(Constants.CONTENT_TYPE_HEADER, Constants.JSON_CONTENT_TYPE);
        }
        request.addHeader(Constants.ACCEPT_HEADER, Constants.JSON_CONTENT_TYPE);
        request.addHeader(Constants.ODATA_VERSION_HEADER, Constants.ODATA_VERSION);
        request.addHeader(Constants.ODATA_MAXVERSION_HEADER, Constants.ODATA_MAXVERSION);

        if (request.getHeaders() != null) {
            for (String key : request.getHeaders().keySet()) {
                request.addHeader(key, request.getHeaders().get(key));
            }
        }

        boolean credentialsSet = false;

        Credentials cred = resolver.getCredentials();
        if (cred != null) {
            cred.prepareRequest(request);
            credentialsSet = true;
        }

        if (!credentialsSet) {
            logger.log("Executing request without setting credentials", LogLevel.WARNING);
        }

        logger.log("Request Headers: ", LogLevel.VERBOSE);
        for (String key : request.getHeaders().keySet()) {
            logger.log(key + " : " + request.getHeaders().get(key), LogLevel.VERBOSE);
        }

        final ListenableFuture<Response> future = httpTransport.execute(request);
        logger.log("OData request executed", LogLevel.INFO);

        Futures.addCallback(future, new FutureCallback<Response>() {

            @Override
            public void onSuccess(Response response) {
                boolean readBytes = true;
                if (request.getOptions().get(Request.MUST_STREAM_RESPONSE_CONTENT) != null) {
                    readBytes = false;
                }

                OrcResponse orcResponse = new OrcResponseImpl(response);

                try {
                    logger.log("OData response received", LogLevel.INFO);

                    int status = response.getStatus();
                    logger.log("Response Status Code: " + status, LogLevel.INFO);

                    if (readBytes) {
                        logger.log("Reading response data...", LogLevel.VERBOSE);
                        byte[] data = orcResponse.getPayload();
                        logger.log(data.length + " bytes read from response", LogLevel.VERBOSE);

                        try {
                            logger.log("Closing response", LogLevel.VERBOSE);
                            response.close();
                        } catch (Throwable t) {
                            logger.log("Error closing response: " + t.toString(), LogLevel.ERROR);
                            result.setException(t);
                            return;
                        }

                    }

                    if (status < 200 || status > 299) {
                        logger.log("Invalid status code. Processing response content as String",
                                LogLevel.VERBOSE);
                        String responseData = new String(orcResponse.getPayload(), Constants.UTF8_NAME);
                        String message = "Response status: " + response.getStatus() + "\n"
                                + "Response content: " + responseData;
                        logger.log(message, LogLevel.ERROR);
                        result.setException(new OrcException(orcResponse, message));
                        return;
                    }
                    result.set(orcResponse);
                } catch (Throwable t) {
                    logger.log("Unexpected error: " + t.toString(), LogLevel.ERROR);
                    result.setException(new OrcException(orcResponse, t));
                }
            }

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

}

From source file:org.kurento.client.internal.TFutureImpl.java

public TFutureImpl(Operation operation) {
    this.future = SettableFuture.create();
    this.operation = operation;
}

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

ListenableFuture<?> close() {
    final SettableFuture<?> sf = SettableFuture.create();
    final AtomicInteger counter = new AtomicInteger(eventLoops.length);

    for (final SingleThreadEventLoop eventLoop : eventLoops) {
        eventLoop.close().addListener(new Runnable() {
            @Override/* w  w w  .  ja va 2  s  . co m*/
            public void run() {
                if (counter.decrementAndGet() == 0) {
                    sf.set(null);
                }
            }
        }, MoreExecutors.directExecutor());
    }

    return sf;
}

From source file:io.crate.mqtt.netty.ClientNettyMQTTHandler.java

public void initCallback() {
    if (callback != null) {
        callback.cancel(true);
    }
    callback = SettableFuture.create();
}

From source file:io.crate.executor.transport.executionphases.InitializationTracker.java

InitializationTracker(int numServer) {
    future = SettableFuture.create();
    if (numServer == 0) {
        future.set(null);//from  w  w  w  .  jav a  2 s .c  om
    }
    serverToInitialize = new AtomicInteger(numServer);
}

From source file:com.android.camera.one.v2.photo.MetadataFuture.java

public MetadataFuture() {
    mMetadata = SettableFuture.create();
}

From source file:com.android.camera.device.SingleDeviceRequest.java

public SingleDeviceRequest(Lifetime lifetime) {
    mLifetime = lifetime;
    mFuture = SettableFuture.create();
    mIsClosed = new AtomicBoolean(false);
}