diff options
author | Simon Rettberg | 2018-12-07 11:43:21 +0100 |
---|---|---|
committer | Simon Rettberg | 2018-12-07 11:43:21 +0100 |
commit | bf86e5f2daa49da25c91fe3aaa92faaf50d60e0c (patch) | |
tree | da6e4871678fa2af1d5bc1844dbdc90d433526db /dozentenmodulserver | |
parent | [client] NetShares: Fix enable/disable logic (diff) | |
download | tutor-module-bf86e5f2daa49da25c91fe3aaa92faaf50d60e0c.tar.gz tutor-module-bf86e5f2daa49da25c91fe3aaa92faaf50d60e0c.tar.xz tutor-module-bf86e5f2daa49da25c91fe3aaa92faaf50d60e0c.zip |
[server] NanoHTTPD: Use chunked transfer, Increase queue size
Diffstat (limited to 'dozentenmodulserver')
-rw-r--r-- | dozentenmodulserver/src/main/java/fi/iki/elonen/NanoHTTPD.java | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/dozentenmodulserver/src/main/java/fi/iki/elonen/NanoHTTPD.java b/dozentenmodulserver/src/main/java/fi/iki/elonen/NanoHTTPD.java index 5b865384..238dca10 100644 --- a/dozentenmodulserver/src/main/java/fi/iki/elonen/NanoHTTPD.java +++ b/dozentenmodulserver/src/main/java/fi/iki/elonen/NanoHTTPD.java @@ -460,7 +460,7 @@ public abstract class NanoHTTPD implements Runnable { */ public static class DefaultAsyncRunner implements AsyncRunner { private ExecutorService pool = new GrowingThreadPoolExecutor(2, 16, 1, TimeUnit.MINUTES, - new ArrayBlockingQueue<Runnable>(4), new PrioThreadFactory("httpd", Thread.NORM_PRIORITY)); + new ArrayBlockingQueue<Runnable>(16), new PrioThreadFactory("httpd", Thread.NORM_PRIORITY)); @Override public void exec(Runnable code) { @@ -511,23 +511,33 @@ public abstract class NanoHTTPD implements Runnable { /** * Basic constructor. */ - public Response(IStatus status, String mimeType, InputStream data) { + public Response(IStatus status, String mimeType, InputStream data, boolean chunked) { this.status = status; this.mimeType = mimeType; this.data = data; + this.chunkedTransfer = chunked; + } + + /** + * Basic constructor. Enable chunked transfer for everything + * except ByteArrayInputStream. + */ + public Response(IStatus status, String mimeType, InputStream data) { + this(status, mimeType, data, !(data instanceof ByteArrayInputStream)); + } + + /** + * Convenience method that makes an InputStream out of given byte array. + */ + public Response(IStatus status, String mimeType, byte[] data) { + this(status, mimeType, data == null ? null : new ByteArrayInputStream(data)); } /** * Convenience method that makes an InputStream out of given text. */ public Response(IStatus status, String mimeType, String txt) { - this.status = status; - this.mimeType = mimeType; - try { - this.data = txt != null ? new ByteArrayInputStream(txt.getBytes("UTF-8")) : null; - } catch (java.io.UnsupportedEncodingException uee) { - uee.printStackTrace(); - } + this(status, mimeType, txt == null ? null : txt.getBytes(StandardCharsets.UTF_8)); } /** |