package transparent.core;
import java.io.IOException;
import java.io.OutputStream;
public class StreamPipe implements Runnable
{
private static final int BUFFER_SIZE = 4096;
private InterruptableInputStream in;
private OutputStream out;
private boolean alive;
public StreamPipe(InterruptableInputStream in, OutputStream out) {
this.in = in;
this.out = out;
this.alive = true;
}
public void stop() {
this.alive = false;
}
@Override
public void run() {
byte[] buffer = new byte[BUFFER_SIZE];
do {
try {
int read = in.read(buffer);
out.write(buffer, 0, read);
} catch (IOException e) {
break;
}
} while (alive);
}
}