aboutsummaryrefslogtreecommitdiff
path: root/src/org/xbill/DNS/ResolveThread.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/xbill/DNS/ResolveThread.java')
-rw-r--r--src/org/xbill/DNS/ResolveThread.java45
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);
+ }
+}
+
+}