| // 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); |
| } |
| } |
| |
| } |