// Tags: not-a-test
package gnu.testlet.wonka.io.PipedStream;
import gnu.testlet.TestHarness;
import java.io.*;
class PipedStreamTestWriter implements Runnable {
String str;
StringBufferInputStream sbis;
PipedOutputStream out;
TestHarness harness;
private boolean isReady = false;
public PipedStreamTestWriter(TestHarness harness) {
this.harness = harness;
str = "I went to work for Andersen Consulting after I graduated\n"
+ "from college. They sent me to their training facility in St. Charles,\n"
+ "Illinois and tried to teach me COBOL. I didn't want to learn it.\n"
+ "The instructors said I had a bad attitude and I got a green sheet\n"
+ "which is a nasty note in your file saying what a jerk you are.\n";
sbis = new StringBufferInputStream(str);
out = new PipedOutputStream();
}
public PipedOutputStream getStream() {
return (out);
}
public String getStr() {
return (str);
}
public synchronized void waitTillReady() {
while (!isReady) {
try {
this.wait();
} catch (InterruptedException ie) { /* ignore */
}
}
}
public void run() {
byte[] buf = new byte[32];
int bytes_read;
try {
int b = sbis.read();
out.write(b);
synchronized (this) {
isReady = true;
this.notify();
}
while ((bytes_read = sbis.read(buf)) != -1)
out.write(buf, 0, bytes_read);
out.flush();
out.close();
} catch (IOException e) {
harness.debug("In writer: " + e);
harness.check(false);
}
}
}