#2450 add outputCallback

This commit is contained in:
Shinsuke Sugaya 2020-05-07 21:43:02 +09:00
parent f7a0988200
commit 870c32cbee

View file

@ -21,6 +21,7 @@ import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -37,13 +38,16 @@ public class InputStreamThread extends Thread {
private final int bufferSize;
private final Consumer<String> outputCallback;
public InputStreamThread(final InputStream is, final String charset) {
this(is, charset, MAX_BUFFER_SIZE);
this(is, charset, MAX_BUFFER_SIZE, null);
}
public InputStreamThread(final InputStream is, final String charset, final int bufferSize) {
public InputStreamThread(final InputStream is, final String charset, final int bufferSize, final Consumer<String> outputCallback) {
super("InputStreamThread");
this.bufferSize = bufferSize;
this.outputCallback = outputCallback;
try {
br = new BufferedReader(new InputStreamReader(is, charset));
@ -65,6 +69,9 @@ public class InputStreamThread extends Thread {
logger.debug(line);
}
list.add(line);
if (outputCallback != null) {
outputCallback.accept(line);
}
if (list.size() > bufferSize) {
list.remove(0);
}