package net.sourceforge.pain.network.console;
import java.io.*;
public abstract class ConsoleAdapter {
public static final String NEW_LINE = "\r\n";
protected BasicConsole console = null;
private AbstractConsoleManager cm;
public ConsoleAdapter() {
}
/**
* super class should call this method ONLY when it ready
* to accept data
*/
public void init(AbstractConsoleManager cm) {
this.cm = cm;
console = cm.register(this);
}
public void lineReceived(String line) {
console.input.add(line);
}
protected abstract void forceClose();
public void closedRemote() {
cm.onRemoteClose(console);
}
public abstract void outText(String text);
/**
* this method used to notify console adapter that end of the current text output reached
* if adapter wants it may flush this output every time we send text
* but adapter MUST flush all it's output buffer when we call flush manually.
* NOTE: method impl should not block!
*/
public abstract void flush() throws IOException;
/** @return remote IP */
public abstract String getRemoteAddr();
}