diff options
| author | Andrei Belov <defan@nginx.com> | 2019-03-01 18:30:09 +0300 |
|---|---|---|
| committer | Andrei Belov <defan@nginx.com> | 2019-03-01 18:30:09 +0300 |
| commit | 3c3720cba7154bc168cbd00c74817626bb53e140 (patch) | |
| tree | da1500f7c6bd5e90ecf45299b6f4b19a29d521cd /src/java/nginx/unit/OutputStream.java | |
| parent | 315a864c27aa27a48c013c4a1ef67a099ffea894 (diff) | |
| parent | df02b03824065389c73213b19736140442cf63bc (diff) | |
| download | unit-3c3720cba7154bc168cbd00c74817626bb53e140.tar.gz unit-3c3720cba7154bc168cbd00c74817626bb53e140.tar.bz2 | |
Merged with the default branch.
Diffstat (limited to 'src/java/nginx/unit/OutputStream.java')
| -rw-r--r-- | src/java/nginx/unit/OutputStream.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/java/nginx/unit/OutputStream.java b/src/java/nginx/unit/OutputStream.java new file mode 100644 index 00000000..68af3423 --- /dev/null +++ b/src/java/nginx/unit/OutputStream.java @@ -0,0 +1,68 @@ +package nginx.unit; + +import java.io.IOException; + +import javax.servlet.ServletOutputStream; +import javax.servlet.WriteListener; + +public class OutputStream extends ServletOutputStream { + + private long req_info_ptr; + + public OutputStream(long ptr) { + req_info_ptr = ptr; + } + + @Override + public void write(int b) throws IOException + { + write(req_info_ptr, b); + } + + private static native void write(long req_info_ptr, int b); + + + @Override + public void write(byte b[], int off, int len) throws IOException + { + if (b == null) { + throw new NullPointerException(); + } else if ((off < 0) || (off > b.length) || (len < 0) || + ((off + len) > b.length) || ((off + len) < 0)) { + throw new IndexOutOfBoundsException(); + } else if (len == 0) { + return; + } + + write(req_info_ptr, b, off, len); + } + + private static native void write(long req_info_ptr, byte b[], int off, int len); + + @Override + public void flush() + { + flush(req_info_ptr); + } + + private static native void flush(long req_info_ptr); + + @Override + public void close() + { + close(req_info_ptr); + } + + private static native void close(long req_info_ptr); + + @Override + public boolean isReady() + { + return true; + } + + @Override + public void setWriteListener(WriteListener listener) + { + } +} |
