diff options
Diffstat (limited to 'src/org/xbill/DNS/ResolveThread.java')
-rw-r--r-- | src/org/xbill/DNS/ResolveThread.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/org/xbill/DNS/ResolveThread.java b/src/org/xbill/DNS/ResolveThread.java new file mode 100644 index 0000000..3087cdb --- /dev/null +++ b/src/org/xbill/DNS/ResolveThread.java @@ -0,0 +1,45 @@ +// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) + +package org.xbill.DNS; + +/** + * A special-purpose thread used by Resolvers (both SimpleResolver and + * ExtendedResolver) to perform asynchronous queries. + * + * @author Brian Wellington + */ + +class ResolveThread extends Thread { + +private Message query; +private Object id; +private ResolverListener listener; +private Resolver res; + +/** Creates a new ResolveThread */ +public +ResolveThread(Resolver res, Message query, Object id, + ResolverListener listener) +{ + this.res = res; + this.query = query; + this.id = id; + this.listener = listener; +} + + +/** + * Performs the query, and executes the callback. + */ +public void +run() { + try { + Message response = res.send(query); + listener.receiveMessage(id, response); + } + catch (Exception e) { + listener.handleException(id, e); + } +} + +} |