package org.hedgecode.chess.uci;
-import java.io.BufferedWriter;
-import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintWriter;
/**
* External UCI Engine.
public class ExternalEngine implements Engine {
private static final String COMMAND_FORMAT = "%s %s";
- private static final String CRLF = System.getProperty("line.separator");
- private BufferedWriter engineWriter;
+ private Transmitter<String> transmitter;
+ private PrintWriter engineWriter;
- ExternalEngine(BufferedWriter writer) {
- engineWriter = writer;
+ ExternalEngine(InputStream input, OutputStream output) {
+ transmitter = new ExternalEngineTransmitter(input);
+ engineWriter = new PrintWriter(output, true);
+ }
+
+ public Transmitter<String> transmitter() {
+ return transmitter;
}
private void write(String command) {
- try {
- engineWriter.write(command);
- engineWriter.write(CRLF);
- engineWriter.flush();
- } catch (IOException ignored) {
- }
+ engineWriter.println(command);
}
private String format(String name, String params) {