/
codebase/
codebase/area/
codebase/doc/
codebase/etc/
codebase/src/net/sourceforge/pain/data/trigger/
codebase/src/net/sourceforge/pain/logic/
codebase/src/net/sourceforge/pain/logic/affect/
codebase/src/net/sourceforge/pain/logic/event/
codebase/src/net/sourceforge/pain/logic/event/deploy/
codebase/src/net/sourceforge/pain/logic/event/guitool/
codebase/src/net/sourceforge/pain/logic/event/guitool/event/
codebase/src/net/sourceforge/pain/logic/fn/util/
codebase/src/net/sourceforge/pain/logic/trigger/
codebase/src/net/sourceforge/pain/logic/trigger/impl/
codebase/src/net/sourceforge/pain/network/console/
codebase/src/net/sourceforge/pain/network/console/telnet/
codebase/src/net/sourceforge/pain/network/guitool/
codebase/src/net/sourceforge/pain/plugin/
codebase/src/net/sourceforge/pain/plugin/command/
codebase/src/net/sourceforge/pain/plugin/reset/
codebase/src/net/sourceforge/pain/plugin/shutdown/
codebase/src/net/sourceforge/pain/plugin/social/
codebase/src/net/sourceforge/pain/util/
db/doc/javadoc/resources/
db/src/net/sourceforge/pain/util/
gui/
gui/lib/
gui/src/net/sourceforge/pain/tools/guitool/dbbrowse/
gui/src/net/sourceforge/pain/tools/guitool/dialog/
gui/src/net/sourceforge/pain/tools/guitool/menu/
gui/src/net/sourceforge/pain/tools/guitool/resources/
gui/src/net/sourceforge/pain/tools/guitool/resources/images/
gui/src/net/sourceforge/pain/tools/guitool/resources/images/explorer/
tests/
tests/src/
tests/src/net/sourceforge/pain/db/data/
package net.sourceforge.pain.network.console;


import net.sourceforge.pain.*;

import java.io.*;


public abstract class ConsoleAdapter {

	public static final String NEW_LINE = "\r\n";
	protected Console console = null;

	private ConsoleManager cm;

	public ConsoleAdapter() {
	}

	/**
	 super class should call this method ONLY when it ready
	 to accept data
	 */
	public void init() {
		cm = Core.getConsoleManager();
		console = cm.register(this);
	}

	public void lineReceived(String line) {
		console.input.add(line);
	}

	protected abstract void forceClose();

	public void closedRemote() {
		cm.onRemoteClose(console);
	}

//	public final Console getConsole() {
//		return 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;
}