public class LookupSession
extends java.lang.Object
LookupSession.LookupSessionBuilder instance returned by builder().| Modifier and Type | Class and Description |
|---|---|
static class |
LookupSession.LookupSessionBuilder
A builder for
LookupSession instances. |
| Modifier and Type | Field and Description |
|---|---|
private java.util.Map<java.lang.Integer,Cache> |
caches |
private boolean |
cycleResults |
static int |
DEFAULT_MAX_ITERATIONS |
static int |
DEFAULT_NDOTS |
private java.util.concurrent.Executor |
executor |
private HostsFileParser |
hostsFileParser |
private int |
maxRedirects |
private int |
ndots |
private Resolver |
resolver |
private java.util.List<Name> |
searchPath |
| Modifier | Constructor and Description |
|---|---|
private |
LookupSession(@NonNull Resolver resolver,
int maxRedirects,
int ndots,
java.util.List<Name> searchPath,
boolean cycleResults,
java.util.List<Cache> caches,
HostsFileParser hostsFileParser,
java.util.concurrent.Executor executor) |
| Modifier and Type | Method and Description |
|---|---|
static LookupSession.LookupSessionBuilder |
builder()
Returns an empty
LookupSession.LookupSessionBuilder instance. |
private static LookupResult |
buildResult(Message answer,
java.util.List<Name> aliases,
Record query)
Returns a LookupResult if this response was a non-exceptional empty result, else null.
|
private <T extends java.lang.Throwable> |
completeExceptionally(T failure) |
static LookupSession.LookupSessionBuilder |
defaultBuilder()
Returns a
LookupSession.LookupSessionBuilder instance initialized with defaults. |
(package private) java.util.List<Name> |
expandName(Name name)
Generate a stream of names according to the search path application semantics.
|
java.util.concurrent.CompletionStage<LookupResult> |
lookupAsync(Name name,
int type)
Make an asynchronous lookup of the provided name using the default
DClass.IN. |
java.util.concurrent.CompletionStage<LookupResult> |
lookupAsync(Name name,
int type,
int dclass)
Make an asynchronous lookup of the provided name.
|
private java.util.concurrent.CompletionStage<LookupResult> |
lookupUntilSuccess(java.util.Iterator<Name> names,
int type,
int dclass) |
private java.util.concurrent.CompletionStage<LookupResult> |
lookupWithCache(Record queryRecord,
java.util.List<Name> aliases) |
private LookupResult |
lookupWithHosts(java.util.List<Name> names,
int type) |
private java.util.concurrent.CompletionStage<LookupResult> |
lookupWithResolver(Record queryRecord,
java.util.List<Name> aliases) |
private Message |
maybeAddToCache(Message message) |
private java.util.concurrent.CompletionStage<LookupResult> |
maybeFollowRedirect(LookupResult response,
Record query,
int redirectCount) |
private java.util.concurrent.CompletionStage<LookupResult> |
maybeFollowRedirectsInAnswer(LookupResult response,
Record query,
int redirectCount) |
private java.util.concurrent.CompletionStage<LookupResult> |
resolveRedirects(LookupResult response,
Record query) |
private static Name |
safeConcat(Name name,
Name suffix) |
private java.util.concurrent.CompletionStage<LookupResult> |
setResponseToMessageFuture(SetResponse setResponse,
Record queryRecord,
java.util.List<Name> aliases) |
public static final int DEFAULT_MAX_ITERATIONS
public static final int DEFAULT_NDOTS
private final Resolver resolver
private final int maxRedirects
private final int ndots
private final java.util.List<Name> searchPath
private final boolean cycleResults
private final java.util.Map<java.lang.Integer,Cache> caches
private final HostsFileParser hostsFileParser
private final java.util.concurrent.Executor executor
private LookupSession(@NonNull
@NonNull Resolver resolver,
int maxRedirects,
int ndots,
java.util.List<Name> searchPath,
boolean cycleResults,
java.util.List<Cache> caches,
HostsFileParser hostsFileParser,
java.util.concurrent.Executor executor)
public static LookupSession.LookupSessionBuilder builder()
LookupSession.LookupSessionBuilder instance. See defaultBuilder() for a
builder initialized with defaults.public static LookupSession.LookupSessionBuilder defaultBuilder()
LookupSession.LookupSessionBuilder instance initialized with defaults.
ExtendedResolver initialized with the system's default
DNS servers as determined by ResolverConfig.
ResolverConfig.
IN class is installed.
public java.util.concurrent.CompletionStage<LookupResult> lookupAsync(Name name, int type)
DClass.IN.name - the name to look up.type - the type to look up, values should correspond to constants in Type.CompletionStage what will yield the eventual lookup result.public java.util.concurrent.CompletionStage<LookupResult> lookupAsync(Name name, int type, int dclass)
java.util.List<Name> expandName(Name name)
Lookup. Note that the stream returned is
never empty, as it will at the very least always contain name.private LookupResult lookupWithHosts(java.util.List<Name> names, int type)
private java.util.concurrent.CompletionStage<LookupResult> lookupUntilSuccess(java.util.Iterator<Name> names, int type, int dclass)
private java.util.concurrent.CompletionStage<LookupResult> lookupWithCache(Record queryRecord, java.util.List<Name> aliases)
private java.util.concurrent.CompletionStage<LookupResult> lookupWithResolver(Record queryRecord, java.util.List<Name> aliases)
private java.util.concurrent.CompletionStage<LookupResult> setResponseToMessageFuture(SetResponse setResponse, Record queryRecord, java.util.List<Name> aliases)
private <T extends java.lang.Throwable> java.util.concurrent.CompletionStage<LookupResult> completeExceptionally(T failure)
private java.util.concurrent.CompletionStage<LookupResult> resolveRedirects(LookupResult response, Record query)
private java.util.concurrent.CompletionStage<LookupResult> maybeFollowRedirect(LookupResult response, Record query, int redirectCount)
private java.util.concurrent.CompletionStage<LookupResult> maybeFollowRedirectsInAnswer(LookupResult response, Record query, int redirectCount)
private static LookupResult buildResult(Message answer, java.util.List<Name> aliases, Record query)