SocketAddressResolver@ManagedObject("The asynchronous address resolver") public static class SocketAddressResolver.Async extends java.lang.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
}
});
SocketAddressResolver.Async, SocketAddressResolver.Sync| Constructor | Description |
|---|---|
Async(java.util.concurrent.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.
|
| Modifier and Type | Method | Description |
|---|---|---|
java.util.concurrent.Executor |
getExecutor() |
|
Scheduler |
getScheduler() |
|
long |
getTimeout() |
|
void |
resolve(java.lang.String host,
int port,
Promise<java.util.List<java.net.InetSocketAddress>> promise) |
Resolves the given host and port, returning a
SocketAddress through the given Promise
with the default timeout. |
public Async(java.util.concurrent.Executor executor,
Scheduler scheduler,
long timeout)
executor - the thread pool to use to perform DNS resolution in pooled threadsscheduler - the scheduler to schedule tasks to cancel DNS resolution if it takes too longtimeout - the timeout, in milliseconds, for the DNS resolution to completepublic java.util.concurrent.Executor getExecutor()
public Scheduler getScheduler()
@ManagedAttribute(value="The timeout, in milliseconds, to resolve an address", readonly=true) public long getTimeout()
public void resolve(java.lang.String host,
int port,
Promise<java.util.List<java.net.InetSocketAddress>> promise)
SocketAddressResolverSocketAddress through the given Promise
with the default timeout.resolve in interface SocketAddressResolverhost - the host to resolveport - the port of the resulting socket addresspromise - the callback invoked when the resolution succeeds or failsCopyright © 1995–2017 Webtide. All rights reserved.