1// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)
2
3package org.xbill.DNS;
4
5/**
6 * A special-purpose thread used by Resolvers (both SimpleResolver and
7 * ExtendedResolver) to perform asynchronous queries.
8 *
9 * @author Brian Wellington
10 */
11
12class ResolveThread extends Thread {
13
14private Message query;
15private Object id;
16private ResolverListener listener;
17private Resolver res;
18
19/** Creates a new ResolveThread */
20public
21ResolveThread(Resolver res, Message query, Object id,
22	      ResolverListener listener)
23{
24	this.res = res;
25	this.query = query;
26	this.id = id;
27	this.listener = listener;
28}
29
30
31/**
32 * Performs the query, and executes the callback.
33 */
34public void
35run() {
36	try {
37		Message response = res.send(query);
38		listener.receiveMessage(id, response);
39	}
40	catch (Exception e) {
41		listener.handleException(id, e);
42	}
43}
44
45}
46