Example usage for io.netty.util.concurrent Promise trySuccess

List of usage examples for io.netty.util.concurrent Promise trySuccess

Introduction

In this page you can find the example usage for io.netty.util.concurrent Promise trySuccess.

Prototype

boolean trySuccess(V result);

Source Link

Document

Marks this future as a success and notifies all listeners.

Usage

From source file:org.asynchttpclient.resolver.RequestHostnameResolver.java

License:Open Source License

public Future<List<InetSocketAddress>> resolve(Request request, ProxyServer proxy,
        AsyncHandler<?> asyncHandler) {

    Uri uri = request.getUri();//from ww w  .j a v a 2 s.co  m
    final Promise<List<InetSocketAddress>> promise = ImmediateEventExecutor.INSTANCE.newPromise();

    if (request.getAddress() != null) {
        List<InetSocketAddress> resolved = Collections
                .singletonList(new InetSocketAddress(request.getAddress(), uri.getExplicitPort()));
        return promise.setSuccess(resolved);
    }

    // don't notify on explicit address
    final AsyncHandlerExtensions asyncHandlerExtensions = request.getAddress() == null
            ? toAsyncHandlerExtensions(asyncHandler)
            : null;
    final String name;
    final int port;

    if (proxy != null && !proxy.isIgnoredForHost(uri.getHost())) {
        name = proxy.getHost();
        port = uri.isSecured() ? proxy.getSecuredPort() : proxy.getPort();
    } else {
        name = uri.getHost();
        port = uri.getExplicitPort();
    }

    if (asyncHandlerExtensions != null)
        asyncHandlerExtensions.onHostnameResolutionAttempt(name);

    final Future<List<InetAddress>> whenResolved = request.getNameResolver().resolveAll(name);

    whenResolved.addListener(new SimpleFutureListener<List<InetAddress>>() {

        @Override
        protected void onSuccess(List<InetAddress> value) throws Exception {
            ArrayList<InetSocketAddress> socketAddresses = new ArrayList<>(value.size());
            for (InetAddress a : value) {
                socketAddresses.add(new InetSocketAddress(a, port));
            }
            if (asyncHandlerExtensions != null) {
                asyncHandlerExtensions.onHostnameResolutionSuccess(name, socketAddresses);
            }
            promise.trySuccess(socketAddresses);
        }

        @Override
        protected void onFailure(Throwable t) throws Exception {
            if (asyncHandlerExtensions != null) {
                asyncHandlerExtensions.onHostnameResolutionFailure(name, t);
            }
            promise.tryFailure(t);
        }
    });

    return promise;
}

From source file:org.redisson.misc.ConnectionPool.java

License:Apache License

private void promiseSuccessful(ClientConnectionsEntry entry, Promise<T> promise, T conn) {
    entry.resetFailedAttempts();//from  ww w  . ja  v  a 2 s . com
    if (!promise.trySuccess(conn)) {
        releaseConnection(entry, conn);
        releaseConnection(entry);
    }
}