private void drainingServer(Consumer<Future<Void>> consumer) { Future<Void> resumeFuture = Future.future(); server.requestHandler(req -> { req.response().setChunked(true); assertFalse(req.response().writeQueueFull()); req.response().setWriteQueueMaxSize(1000); Buffer buff = TestUtils.randomBuffer(10000); //Send data until the buffer is full vertx.setPeriodic(1, id -> { req.response().write(buff); if (req.response().writeQueueFull()) { vertx.cancelTimer(id); req.response().drainHandler(v -> { assertFalse(req.response().writeQueueFull()); testComplete(); }); // Tell the client to resume resumeFuture.complete(); } }); }); server.listen(onSuccess(s -> consumer.accept(resumeFuture))); }
case "/0": { vertx.setPeriodic(1, timerID -> { if (resp.writeQueueFull()) { vertx.cancelTimer(timerID); fullLatch.countDown(); assertTrue(resp.writeQueueFull()); resp.drainHandler(v -> { resp.end();
private void checkHttpServerResponse(HttpServerResponse resp) { Buffer buff = Buffer.buffer(); assertIllegalStateException(() -> resp.drainHandler(noOpHandler())); assertIllegalStateException(() -> resp.end()); assertIllegalStateException(() -> resp.end("foo")); assertIllegalStateException(() -> resp.end(buff)); assertIllegalStateException(() -> resp.end("foo", "UTF-8")); assertIllegalStateException(() -> resp.exceptionHandler(noOpHandler())); assertIllegalStateException(() -> resp.setChunked(false)); assertIllegalStateException(() -> resp.setWriteQueueMaxSize(123)); assertIllegalStateException(() -> resp.write(buff)); assertIllegalStateException(() -> resp.write("foo")); assertIllegalStateException(() -> resp.write("foo", "UTF-8")); assertIllegalStateException(() -> resp.write(buff)); assertIllegalStateException(() -> resp.writeQueueFull()); assertIllegalStateException(() -> resp.sendFile("asokdasokd")); }
resp.setChunked(true); vertx.setPeriodic(1, timerID -> { if (resp.writeQueueFull()) { resp.drainHandler(v -> { Buffer last = Buffer.buffer("last");
@Override public boolean writeQueueFull() { return valid() && httpServerResponse.writeQueueFull(); }
/** * This will return <code>true</code> if there are more bytes in the write queue than the value set using {@link io.vertx.rxjava.core.http.HttpServerResponse#setWriteQueueMaxSize} * @return true if write queue is full */ public boolean writeQueueFull() { boolean ret = delegate.writeQueueFull(); return ret; }
/** * This will return <code>true</code> if there are more bytes in the write queue than the value set using {@link io.vertx.rxjava.core.http.HttpServerResponse#setWriteQueueMaxSize} * @return true if write queue is full */ public boolean writeQueueFull() { boolean ret = delegate.writeQueueFull(); return ret; }
@Override public boolean writeQueueFull() { return response.writeQueueFull(); }
@Override public boolean writeQueueFull() { return wrapped.writeQueueFull(); }
private void drainingServer(Consumer<Future<Void>> consumer) { Future<Void> resumeFuture = Future.future(); server.requestHandler(req -> { req.response().setChunked(true); assertFalse(req.response().writeQueueFull()); req.response().setWriteQueueMaxSize(1000); Buffer buff = TestUtils.randomBuffer(10000); //Send data until the buffer is full vertx.setPeriodic(1, id -> { req.response().write(buff); if (req.response().writeQueueFull()) { vertx.cancelTimer(id); req.response().drainHandler(v -> { assertFalse(req.response().writeQueueFull()); testComplete(); }); // Tell the client to resume resumeFuture.complete(); } }); }); server.listen(onSuccess(s -> consumer.accept(resumeFuture))); }
case "/0": { vertx.setPeriodic(1, timerID -> { if (resp.writeQueueFull()) { vertx.cancelTimer(timerID); fullLatch.countDown(); assertTrue(resp.writeQueueFull()); resp.drainHandler(v -> { resp.end();
private void checkHttpServerResponse(HttpServerResponse resp) { Buffer buff = Buffer.buffer(); assertIllegalStateException(() -> resp.drainHandler(noOpHandler())); assertIllegalStateException(() -> resp.end()); assertIllegalStateException(() -> resp.end("foo")); assertIllegalStateException(() -> resp.end(buff)); assertIllegalStateException(() -> resp.end("foo", "UTF-8")); assertIllegalStateException(() -> resp.exceptionHandler(noOpHandler())); assertIllegalStateException(() -> resp.setChunked(false)); assertIllegalStateException(() -> resp.setWriteQueueMaxSize(123)); assertIllegalStateException(() -> resp.write(buff)); assertIllegalStateException(() -> resp.write("foo")); assertIllegalStateException(() -> resp.write("foo", "UTF-8")); assertIllegalStateException(() -> resp.write(buff)); assertIllegalStateException(() -> resp.writeQueueFull()); assertIllegalStateException(() -> resp.sendFile("asokdasokd")); }
/** * {@inheritDoc} */ @Override public boolean writeQueueFull() { checkResponseSet(); return response.writeQueueFull(); }
/** * {@inheritDoc} */ @Override public boolean writeQueueFull() { checkResponseSet(); return response.writeQueueFull(); }
resp.setChunked(true); vertx.setPeriodic(1, timerID -> { if (resp.writeQueueFull()) { resp.drainHandler(v -> { Buffer last = Buffer.buffer("last");
@Override public boolean writeQueueFull() { return valid() && httpServerResponse.writeQueueFull(); }
private void processReadBuffer(Buffer buffer) { logger.info("Read {} bytes from pos {}", buffer.length(), positionInFile); positionInFile += buffer.length(); if (buffer.length() == 0) { closeCurrentFile(); return; } for (HttpServerResponse streamer : streamers) { if (!streamer.writeQueueFull()) { streamer.write(buffer.copy()); } } } }
private void downloadFile(AsyncFile file, HttpServerRequest request) { HttpServerResponse response = request.response(); response.setStatusCode(200) .putHeader("Content-Type", "audio/mpeg") .setChunked(true); file.handler(buffer -> { response.write(buffer); if (response.writeQueueFull()) { file.pause(); response.drainHandler(v -> file.resume()); } }); file.endHandler(v -> response.end()); }
resp.setChunked(true); vertx.setPeriodic(1, id -> { if (!resp.writeQueueFull()) { resp.write(TestUtils.randomAlphaString(1024)); } else {