00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 package org.openmobileis.embedded.webserver;
00031
00032 import java.io.IOException;
00033 import java.io.OutputStream;
00034
00035 import javax.servlet.ServletOutputStream;
00036
00037 import org.openmobileis.embedded.webserver.WebServerConnection;;
00038
00039 public class ServeOutputStream extends ServletOutputStream {
00040
00041
00042 private OutputStream out;
00043
00044 private WebServerConnection conn;
00045 private boolean returnedAsStream, returnedAsWriter;
00046
00047 public ServeOutputStream(OutputStream out, WebServerConnection conn) {
00048
00049 this.out = out;
00050 this.conn = conn;
00051 }
00052
00053 public void print(String s) throws IOException {
00054 write(s.getBytes());
00055 }
00056
00057 public void write(int b) throws IOException {
00058 conn.writeHeaders();
00059 out.write(b);
00060 }
00061
00062 public void write(byte[] b) throws IOException {
00063 write(b, 0, b.length);
00064 }
00065
00066 public void write(byte[] b, int off, int len) throws IOException {
00067 conn.writeHeaders();
00068 out.write(b, off, len);
00069 }
00070
00071 public void flush() throws IOException {
00072 conn.writeHeaders();
00073 out.flush();
00074 }
00075
00076 public void close() throws IOException {
00077 conn.writeHeaders();
00078 out.close();
00079 }
00080
00081 boolean isReturnedAsStream() {
00082 return returnedAsStream;
00083 }
00084
00085 void setReturnedAsStream(boolean _set) {
00086 returnedAsStream = _set;
00087 }
00088
00089 boolean isReturnedAsWriter() {
00090 return returnedAsWriter;
00091 }
00092
00093 void setReturnedAsWriter(boolean _set) {
00094 returnedAsWriter = _set;
00095 }
00096
00097 }