[or-cvs] Tweak jaa control lib interface: make launchThread unneeded...

Nick Mathewson nickm at seul.org
Mon Jul 11 19:14:21 UTC 2005


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



More information about the tor-commits mailing list