/*
* This file is part of lanterna (http://code.google.com/p/lanterna/).
*
* lanterna is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Copyright (C) 2010-2020 Martin Berglund
*/
package com.googlecode.lanterna.terminal;
import com.googlecode.lanterna.SGR;
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.TerminalSize;
import com.googlecode.lanterna.TextColor;
import com.googlecode.lanterna.input.KeyStroke;
import java.util.concurrent.TimeUnit;
Interface extending Terminal that removes the IOException throw clause. You can for example use this instead of
Terminal if you use an implementation that doesn't throw any IOExceptions or if you wrap your terminal in an
IOSafeTerminalAdapter. Please note that readInput() still throws IOException when it is interrupted, in order to fit
better in with what normal terminal do when they are blocked on input and you interrupt them.
Author: Martin
/**
* Interface extending Terminal that removes the IOException throw clause. You can for example use this instead of
* Terminal if you use an implementation that doesn't throw any IOExceptions or if you wrap your terminal in an
* IOSafeTerminalAdapter. Please note that readInput() still throws IOException when it is interrupted, in order to fit
* better in with what normal terminal do when they are blocked on input and you interrupt them.
* @author Martin
*/
public interface IOSafeTerminal extends Terminal {
@Override
void enterPrivateMode();
@Override
void exitPrivateMode();
@Override
void clearScreen();
@Override
void setCursorPosition(int x, int y);
@Override
void setCursorPosition(TerminalPosition position);
@Override
TerminalPosition getCursorPosition();
@Override
void setCursorVisible(boolean visible);
@Override
void putCharacter(char c);
@Override
void enableSGR(SGR sgr);
@Override
void disableSGR(SGR sgr);
@Override
void resetColorAndSGR();
@Override
void setForegroundColor(TextColor color);
@Override
void setBackgroundColor(TextColor color);
@Override
TerminalSize getTerminalSize();
@Override
byte[] enquireTerminal(int timeout, TimeUnit timeoutUnit);
@Override
void bell();
@Override
void flush();
@Override
KeyStroke pollInput();
@Override
KeyStroke readInput();
@Override
void close();
}