Example usage for io.vertx.core.streams ReadStream pause

List of usage examples for io.vertx.core.streams ReadStream pause

Introduction

In this page you can find the example usage for io.vertx.core.streams ReadStream pause.

Prototype

@Fluent
ReadStream<T> pause();

Source Link

Document

Pause the ReadStream , it sets the buffer in fetch mode and clears the actual demand.

Usage

From source file:io.sqp.proxy.vertx.WebsocketSendQueueStream.java

License:Open Source License

public ReadStream<Buffer> addStream(ReadStream<Buffer> stream, DataFormat format) {
    stream.pause(); // make sure it's paused while in queue
    _streamQueue.add(new QueuedStream(stream, format));
    proceedToNextStream();// ww w  .  j av  a 2 s.c o  m
    return this;
}

From source file:org.apache.servicecomb.foundation.vertx.http.ReadStreamPart.java

License:Apache License

public ReadStreamPart(Context context, ReadStream<Buffer> readStream) {
    this.context = context;
    this.readStream = readStream;

    readStream.pause();
}

From source file:org.sfs.io.AsyncIO.java

License:Apache License

public static <M> Observable<Void> pump(final ReadStream<M> rs, final EndableWriteStream<M> ws) {
    rs.pause();
    return Observable.defer(() -> {
        ObservableFuture<Void> observableFuture = RxHelper.observableFuture();
        Handler<Throwable> exceptionHandler = throwable -> {
            try {
                ws.drainHandler(null);/*from  www.ja v a2 s .co m*/
                rs.handler(null);
            } catch (Throwable e) {
                observableFuture.fail(e);
                return;
            }
            observableFuture.fail(throwable);
        };
        rs.exceptionHandler(exceptionHandler);
        ws.exceptionHandler(exceptionHandler);
        Handler<Void> drainHandler = event -> {
            try {
                rs.resume();
            } catch (Throwable e) {
                exceptionHandler.handle(e);
            }
        };

        Handler<M> dataHandler = data -> {
            try {
                ws.write(data);
                if (ws.writeQueueFull()) {
                    rs.pause();
                    ws.drainHandler(drainHandler);
                }
            } catch (Throwable e) {
                exceptionHandler.handle(e);
            }
        };
        ws.endHandler(observableFuture::complete);
        rs.endHandler(event -> {
            try {
                ws.end();
            } catch (Throwable e) {
                exceptionHandler.handle(e);
            }
        });
        try {
            rs.handler(dataHandler);
            rs.resume();
        } catch (Throwable e) {
            exceptionHandler.handle(e);
        }
        return observableFuture;
    });
}