[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] Tweak jaa control lib interface: make launchThread unneeded...
Update of /home/or/cvsroot/control/java/net/freehaven/tor/control
In directory moria:/tmp/cvs-serv7962/java/net/freehaven/tor/control
Modified Files:
EventHandler.java TorControlConnection.java
TorControlConnection0.java TorControlConnection1.java
Added Files:
NullEventHandler.java
Log Message:
Tweak jaa control lib interface: make launchThread unneeded, add stub implementation for EventHandler.
Index: EventHandler.java
===================================================================
RCS file: /home/or/cvsroot/control/java/net/freehaven/tor/control/EventHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- EventHandler.java 23 Jun 2005 21:22:04 -0000 1.3
+++ EventHandler.java 11 Jul 2005 19:14:18 -0000 1.4
@@ -7,7 +7,7 @@
* Abstract interface whose methods are invoked when Tor sends us an event.
*
* @see TorControlConnection#setEventHandler
- * @see TorControlConnection#listenForEvents
+ * @see TorControlConnection#setEvents
*/
public interface EventHandler {
/**
--- NEW FILE: NullEventHandler.java ---
// $Id: NullEventHandler.java,v 1.1 2005/07/11 19:14:18 nickm Exp $
// Copyright 2005 Nick Mathewson, Roger Dingledine
// See LICENSE file for copying information
package net.freehaven.tor.control;
/**
* Implementation of EventHandler that ignores all events. Useful
* when you only want to override one method.
*/
public class NullEventHandler implements EventHandler {
public void circuitStatus(String status, String circID, String path) {}
public void streamStatus(String status, String streamID, String target) {}
public void orConnStatus(String status, String orName) {}
public void bandwidthUsed(long read, long written) {}
public void newDescriptors(java.util.List orList) {}
public void message(String severity, String msg) {}
public void unrecognized(String type, String msg) {}
}
Index: TorControlConnection.java
===================================================================
RCS file: /home/or/cvsroot/control/java/net/freehaven/tor/control/TorControlConnection.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- TorControlConnection.java 24 Jun 2005 18:03:27 -0000 1.4
+++ TorControlConnection.java 11 Jul 2005 19:14:18 -0000 1.5
@@ -19,6 +19,8 @@
protected LinkedList waiters;
+ protected Thread thread;
+
static class Waiter {
Object response;
public synchronized Object getResponse() {
@@ -78,7 +80,7 @@
/** Set the EventHandler object that will be notified of any
* events Tor delivers to this connection. To make Tor send us
- * events, call listenForEvents(). */
+ * events, call setEvents(). */
public void setEventHandler(EventHandler handler) {
this.handler = handler;
}
@@ -101,9 +103,15 @@
if (daemon)
th.setDaemon(true);
th.start();
+ this.thread = th;
return th;
}
+ protected final void checkThread() {
+ if (thread == null)
+ launchThread(true);
+ }
+
protected abstract void react() throws IOException;
/** Change the value of the configuration option 'key' to 'val'.
Index: TorControlConnection0.java
===================================================================
RCS file: /home/or/cvsroot/control/java/net/freehaven/tor/control/TorControlConnection0.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- TorControlConnection0.java 24 Jun 2005 18:03:27 -0000 1.3
+++ TorControlConnection0.java 11 Jul 2005 19:14:18 -0000 1.4
@@ -133,6 +133,7 @@
* to be received (in order) */
protected synchronized Cmd _sendAndWaitForResponse(short type, byte[] cmd)
throws IOException {
+ checkThread();
Waiter w = new Waiter();
synchronized (waiters) {
sendCommand(type, cmd);
Index: TorControlConnection1.java
===================================================================
RCS file: /home/or/cvsroot/control/java/net/freehaven/tor/control/TorControlConnection1.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- TorControlConnection1.java 24 Jun 2005 18:03:27 -0000 1.2
+++ TorControlConnection1.java 11 Jul 2005 19:14:18 -0000 1.3
@@ -138,6 +138,7 @@
protected synchronized ArrayList sendAndWaitForResponse(String s,String rest)
throws IOException {
+ checkThread();
Waiter w = new Waiter();
synchronized (waiters) {
output.write(s);