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