/** * Stop the Pump. The Pump can be started and stopped multiple times. */ @Override public PumpImpl stop() { writeStream.drainHandler(null); readStream.handler(null); return this; }
@Override public ReadStream<T> exceptionHandler(Handler<Throwable> handler) { delegate.exceptionHandler(handler); return null; }
/** * Create a new {@code Pump} with the given {@code ReadStream} and {@code WriteStream}. Set the write queue max size * of the write stream to {@code maxWriteQueueSize} */ PumpImpl(ReadStream<T> rs, WriteStream<T> ws, int maxWriteQueueSize) { this(rs, ws); this.writeStream.setWriteQueueMaxSize(maxWriteQueueSize); }
PumpImpl(ReadStream<T> rs, WriteStream<T> ws) { this.readStream = rs; this.writeStream = ws; drainHandler = v-> readStream.resume(); dataHandler = data -> { writeStream.write(data); incPumped(); if (writeStream.writeQueueFull()) { readStream.pause(); writeStream.drainHandler(drainHandler); } }; }
/** * Start the Pump. The Pump can be started and stopped multiple times. */ @Override public PumpImpl start() { readStream.handler(dataHandler); return this; }
@Override public ReadStream<T> endHandler(Handler<Void> endHandler) { delegate.endHandler(endHandler); return this; } }
@Override public ReadStream<T> resume() { delegate.resume(); return this; }
@Override public ReadStream<T> pause() { delegate.pause(); return this; }
@Test(expected = NullPointerException.class) public void testPumpWriteStreamNull() { FakeWriteStream<MyClass> ws = new FakeWriteStream<>(); Pump.pump(null, ws); }
@Test(expected = NullPointerException.class) public void testPumpReadStreamNull() { FakeReadStream<MyClass> rs = new FakeReadStream<>(); Pump.pump(rs, null); }
@Override public ReadStream<T> fetch(long amount) { delegate.fetch(amount); return this; }
private void fill() { while (emit()) { } }
public FakeReadStream resume(Handler<Void> doneHandler) { resume(); doneHandler.handle(null); return this; }
public FakeReadStream pause(Handler<Void> doneHandler) { pause(); doneHandler.handle(null); return this; }
@Override public HttpServer websocketHandler(Handler<ServerWebSocket> handler) { websocketStream().handler(handler); return this; }
@Test(expected = NullPointerException.class) public void testPumpWriteStreamNull2() { FakeWriteStream<MyClass> ws = new FakeWriteStream<>(); Pump.pump(null, ws, 1000); }
@Test(expected = NullPointerException.class) public void testPumpReadStreamNull2() { FakeReadStream<MyClass> rs = new FakeReadStream<>(); Pump.pump(rs, null, 1000); }
/** * Set the write queue max size to {@code maxSize} */ @Override public PumpImpl setWriteQueueMaxSize(int maxSize) { writeStream.setWriteQueueMaxSize(maxSize); return this; }