Interface ReadStream<T>
- All Superinterfaces:
io.vertx.lang.rx.RxDelegate, StreamBase
- All Known Subinterfaces:
StreamChannel, WebSocketBase
- All Known Implementing Classes:
AmqpReceiver, AsyncFile, CassandraRowStream, ClientWebSocket, GrpcClientResponse, GrpcReadStream, GrpcServerRequest, HttpClientResponse, HttpServerFileUpload, HttpServerRequest, JsonParser, KafkaConsumer, MessageConsumer, NetSocket, PgChannel, QuicStream, RabbitMQConsumer, RecordParser, RedisConnection, RowStream, ServerWebSocket, SockJSSocket, TestSuiteReport, WebSocket
Represents a stream of items that can be read from.
Any class that implements this interface can be used by a Pipe to pipe data from it
to a WriteStream.
Streaming mode
The stream is either in flowing or fetch mode.-
Initially the stream is in flowing mode.
- When the stream is in flowing mode, elements are delivered to the
handler. - When the stream is in fetch mode, only the number of requested elements will be delivered to the
handler.
pause(), resume() and fetch(long) methods:
- Calling
resume()sets the flowing mode - Calling
pause()sets the fetch mode and resets the demand to0 - Calling
fetch(long)requests a specific amount of elements and adds it to the actual demand
When a hot read stream is obtained (e.g. `HttpServerRequest`), the read stream is in flowing mode, when a cold read stream is obtained (e.g. `AsyncFile`), the read stream is in fetch mode with no demand.
NOTE: This class has been automatically generated from the original non RX-ified interface using Vert.x codegen.
-
Method Summary
Modifier and TypeMethodDescriptionendHandler(Handler<Void> endHandler) Set an end handler.exceptionHandler(Handler<Throwable> handler) Set an exception handler on the read stream.fetch(long amount) Fetch the specifiedamountof elements.Set a data handler.static <T> ReadStream<T> newInstance(ReadStream arg) static <T> ReadStream<T> newInstance(ReadStream arg, io.vertx.lang.rx.TypeArg<T> __typeArg_T) pause()Pause theReadStream, it sets the buffer infetchmode and clears the actual demand.pipe()Pause this stream and return aPipeto transfer the elements of this stream to a destinationWriteStream.pipeTo(WriteStream<T> dst) Pipe thisReadStreamto theWriteStream.resume()Resume reading, and sets the buffer inflowingmode.rxPipeTo(WriteStream<T> dst) Pipe thisReadStreamto theWriteStream.
-
Method Details
-
getDelegate
ReadStream getDelegate()- Specified by:
getDelegatein interfaceio.vertx.lang.rx.RxDelegate- Specified by:
getDelegatein interfaceStreamBase
-
exceptionHandler
Set an exception handler on the read stream.- Specified by:
exceptionHandlerin interfaceStreamBase- Parameters:
handler- the exception handler- Returns:
- a reference to this, so the API can be used fluently
-
handler
Set a data handler. As data is read, the handler will be called with the data.- Parameters:
handler-- Returns:
- a reference to this, so the API can be used fluently
-
pause
ReadStream<T> pause()Pause theReadStream, it sets the buffer infetchmode and clears the actual demand.While it's paused, no data will be sent to the data
handler.- Returns:
- a reference to this, so the API can be used fluently
-
resume
ReadStream<T> resume()Resume reading, and sets the buffer inflowingmode. If theReadStreamhas been paused, reading will recommence on it.- Returns:
- a reference to this, so the API can be used fluently
-
fetch
Fetch the specifiedamountof elements. If theReadStreamhas been paused, reading will recommence with the specifiedamountof items, otherwise the specifiedamountwill be added to the current stream demand.- Parameters:
amount-- Returns:
- a reference to this, so the API can be used fluently
-
endHandler
Set an end handler. Once the stream has ended, and there is no more data to be read, this handler will be called.- Parameters:
endHandler-- Returns:
- a reference to this, so the API can be used fluently
-
pipe
Pause this stream and return aPipeto transfer the elements of this stream to a destinationWriteStream. The stream will be resumed when the pipe will be wired to aWriteStream.- Returns:
- a pipe
-
pipeTo
Pipe thisReadStreamto theWriteStream.Elements emitted by this stream will be written to the write stream until this stream ends or fails.
- Parameters:
dst- the destination write stream- Returns:
- a future notified when the write stream will be ended with the outcome
-
rxPipeTo
Pipe thisReadStreamto theWriteStream.Elements emitted by this stream will be written to the write stream until this stream ends or fails.
- Parameters:
dst- the destination write stream- Returns:
- a future notified when the write stream will be ended with the outcome
-
toObservable
Observable<T> toObservable() -
toFlowable
-
newInstance
-
newInstance
-