| /* |
| * weinre is available under *either* the terms of the modified BSD license *or* the |
| * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text. |
| * |
| * Copyright (c) 2010, 2011 IBM Corporation |
| */ |
| |
| package weinre.server; |
| |
| import java.io.IOException; |
| import java.io.OutputStream; |
| import java.io.PrintStream; |
| |
| //------------------------------------------------------------------- |
| public class ConsoleOutputStream extends OutputStream { |
| |
| private Main main; |
| private PrintStream originalStream; |
| private StringBuffer stringBuffer; |
| private boolean stdout; |
| |
| //--------------------------------------------------------------- |
| static public PrintStream newPrintStream(Main main, PrintStream originalStream, boolean stdout) { |
| return new PrintStream(new ConsoleOutputStream(main, originalStream, stdout)); |
| } |
| |
| //--------------------------------------------------------------- |
| public ConsoleOutputStream(Main main, PrintStream originalStream, boolean stdout) { |
| this.main = main; |
| this.originalStream = originalStream; |
| this.stdout = stdout; |
| this.stringBuffer = new StringBuffer(); |
| } |
| |
| //--------------------------------------------------------------- |
| @Override |
| public void write(int c) throws IOException { |
| if (c == 0x0D) return; |
| |
| if (c != 0x0A) { |
| stringBuffer.append(Character.toChars(c)); |
| return; |
| } |
| |
| String line = stringBuffer.toString(); |
| stringBuffer = new StringBuffer(); |
| _writeLine(line); |
| } |
| |
| //--------------------------------------------------------------- |
| private void _writeLine(String line) { |
| originalStream.println(line); |
| |
| main.addServerConsoleMessage(line, stdout); |
| } |
| |
| } |