package org.torproject.jtor.circuits.impl;
import java.util.List;
import org.torproject.jtor.circuits.Circuit;
import org.torproject.jtor.circuits.CircuitBuildHandler;
import org.torproject.jtor.directory.Router;
import org.torproject.jtor.logging.Logger;
public class OpenCircuitTask implements Runnable {
private final Circuit circuit;
private final List<Router> circuitPath;
private final CircuitBuildHandler buildHandler;
private final Logger logger;
OpenCircuitTask(Circuit circuit, List<Router> circuitPath, CircuitBuildHandler handler, Logger logger) {
this.circuit = circuit;
this.circuitPath = circuitPath;
this.buildHandler = handler;
this.logger = logger;
}
public void run() {
logger.debug("Opening a new circuit to "+ pathToString());
circuit.openCircuit(circuitPath, buildHandler);
}
private String pathToString() {
final StringBuilder sb = new StringBuilder();
sb.append("[");
for(Router r: circuitPath) {
if(sb.length() > 1)
sb.append(",");
sb.append(r.getNickname());
}
sb.append("]");
return sb.toString();
}
}