X-Git-Url: https://git.hedgecode.org/?a=blobdiff_plain;ds=inline;f=chesshog-uci%2Fsrc%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fuci%2FExternalEngineTransmitter.java;fp=chesshog-uci%2Fsrc%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fuci%2FExternalEngineTransmitter.java;h=3a20bb1659ad2be5a46421823efcaf9aaf8d7db2;hb=1c1d899a4dc4144e6b8ec93c0afcda09b38b5f6f;hp=0000000000000000000000000000000000000000;hpb=1fbf14530416c16f1c6fa5ee3e589482dd722a5d;p=chesshog.git diff --git a/chesshog-uci/src/main/java/org/hedgecode/chess/uci/ExternalEngineTransmitter.java b/chesshog-uci/src/main/java/org/hedgecode/chess/uci/ExternalEngineTransmitter.java new file mode 100644 index 0000000..3a20bb1 --- /dev/null +++ b/chesshog-uci/src/main/java/org/hedgecode/chess/uci/ExternalEngineTransmitter.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2018. Developed by Hedgecode. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.hedgecode.chess.uci; + +import java.io.InputStream; +import java.util.Scanner; + +/** + * + * + * @author Dmitry Samoshin aka gotty + */ +public class ExternalEngineTransmitter implements Transmitter { + + private Scanner scanner; + private boolean isActive; + + ExternalEngineTransmitter(InputStream input) { + scanner = new Scanner(input); + isActive = true; + } + + @Override + public boolean isActive() { + return isActive; + } + + @Override + public boolean hasCommand() { + return isActive && scanner.hasNextLine(); + } + + @Override + public String transmitCommand() { + return scanner.nextLine(); + } + + @Override + public void addCommand(String command) { + // not supported for external engine + } + + @Override + public void stop() { + isActive = false; + } + + @Override + public void close() { + scanner.close(); + } + +}