hacks to support resin-based connections
[org.ibex.io.git] / src / org / ibex / io / Stream.java
index 19363b0..0d6c169 100644 (file)
@@ -27,17 +27,30 @@ public class Stream {
 
     public static boolean loggingEnabled = "true".equals(System.getProperty("ibex.io.stream.logEnabled", "false"));
 
-    public void transcribe(Stream out) {
+    public void transcribe(Stream out) { transcribe(out, false); }
+    public void transcribe(Stream out, boolean close) {
         try {
             byte[] buf = new byte[1024];
             while(true) {
                 int numread = in.read(buf, 0, buf.length);
-                if (numread==-1) return;
+                if (numread==-1) break;
                 out.out.write(buf, 0, numread);
             }
+           if (close) out.close();
         } catch (IOException ioe) { throw new StreamException(ioe); }
     }
 
+    public void transcribe(StringBuffer out) {
+        //try {
+            char[] buf = new char[1024];
+            while(true) {
+                int numread = in.read(buf, 0, buf.length);
+                if (numread==-1) return;
+                out.append(buf, 0, numread);
+            }
+            //} catch (IOException ioe) { throw new StreamException(ioe); }
+    }
+
     public static int countLines(Stream s) {
         int ret = 0;
         while(s.readln() != null) ret++;
@@ -114,6 +127,7 @@ public class Stream {
         try {
             blocker.put(Thread.currentThread(), this);
             logWrite(s);
+            logWrite(newLine);
             out.write(s);
             out.write(newLine);
             flush();