Class SocketAddressResolver.Async

  • All Implemented Interfaces:
    SocketAddressResolver
    Enclosing interface:
    SocketAddressResolver

    @ManagedObject("The asynchronous address resolver")
    public static class SocketAddressResolver.Async
    extends Object
    implements SocketAddressResolver

    Creates SocketAddress instances asynchronously in a different thread.

    InetSocketAddress(String, int) attempts to perform a DNS resolution of the host name, and this may block for several seconds. This class creates the InetSocketAddress in a separate thread and provides the result through a Promise, with the possibility to specify a timeout for the operation.

    Example usage:

     SocketAddressResolver resolver = new SocketAddressResolver.Async(executor, scheduler, timeout);
     resolver.resolve("www.google.com", 80, new Promise<SocketAddress>()
     {
         public void succeeded(SocketAddress result)
         {
             // The address was resolved
         }
    
         public void failed(Throwable failure)
         {
             // The address resolution failed
         }
     });
     
    • Constructor Detail

      • Async

        public Async​(Executor executor,
                     Scheduler scheduler,
                     long timeout)
        Creates a new instance with the given executor (to perform DNS resolution in a separate thread), the given scheduler (to cancel the operation if it takes too long) and the given timeout, in milliseconds.
        Parameters:
        executor - the thread pool to use to perform DNS resolution in pooled threads
        scheduler - the scheduler to schedule tasks to cancel DNS resolution if it takes too long
        timeout - the timeout, in milliseconds, for the DNS resolution to complete