io.vertx.rxjava.core.streams

## Interface ReadStream<T>

- All Superinterfaces:
    StreamBase
  All Known Subinterfaces:
    WebSocketBase
  All Known Implementing Classes:
    AsyncFile, CassandraRowStream, DatagramSocket, HttpClientRequest, HttpClientResponse, HttpServerFileUpload, HttpServerRequest, JsonParser, KafkaConsumer, MessageConsumer, NetSocket, RabbitMQConsumer, RecordParser, ServerWebSocket, SockJSSocket, SQLRowStream, TestSuiteReport, TimeoutStream, WebSocket

      public interface ReadStream<T>
      extends StreamBase

  Represents a stream of items that can be read from.

  Any class that implements this interface can be used by a `Pump` to pump 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`.
  The mode can be changed with the `pause()`, `resume()` and `fetch(long)` methods:
  - Calling `resume()` sets the flowing mode
  - Calling `pause()` sets the fetch mode and resets the demand to `0`
  - Calling `fetch(long)` requests a specific amount of elements and adds it to the actual demand

  NOTE: This class has been automatically generated from the `original` non RX-ified interface using Vert.x codegen.

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `ReadStream<T>` | `endHandler(Handler<Void> endHandler)` Set an end handler.
    `ReadStream<T>` | `exceptionHandler(Handler<Throwable> handler)` Set an exception handler on the read stream.
    `ReadStream<T>` | `fetch(long amount)` Fetch the specified `amount` of elements.
    `ReadStream` | `getDelegate()`
    `ReadStream<T>` | `handler(Handler<T> handler)` Set a data handler.
    `static <T> ReadStream<T>` | `newInstance(ReadStream arg)`
    `static <T> ReadStream<T>` | `newInstance(ReadStream arg, <any> __typeArg_T)`
    `ReadStream<T>` | `pause()` Pause the `ReadStream`, it sets the buffer in `fetch` mode and clears the actual demand.
    `ReadStream<T>` | `resume()` Resume reading, and sets the buffer in `flowing` mode.
    `Observable<T>` | `toObservable()`

    - ### Methods inherited from interface io.vertx.rxjava.core.streams.StreamBase

      `newInstance`

- - ### Method Detail

    - #### getDelegate

          ReadStream getDelegate()

      Specified by:
        `getDelegate` in interface `StreamBase`

    - #### exceptionHandler

          ReadStream<T> exceptionHandler(Handler<Throwable> handler)

      Set an exception handler on the read stream.
      Specified by:
        `exceptionHandler` in interface `StreamBase`
      Parameters:
        `handler` - the exception handler
      Returns:
        a reference to this, so the API can be used fluently

    - #### handler

          ReadStream<T> handler(Handler<T> 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 the `ReadStream`, it sets the buffer in `fetch` mode 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 in `flowing` mode.

      If the `ReadStream` has been paused, reading will recommence on it.
      Returns:
        a reference to this, so the API can be used fluently

    - #### fetch

          ReadStream<T> fetch(long amount)

      Fetch the specified `amount` of elements. If the `ReadStream` has been paused, reading will recommence with the specified `amount` of items, otherwise the specified `amount` will be added to the current stream demand.
      Parameters:
        `amount` -
      Returns:
        a reference to this, so the API can be used fluently

    - #### endHandler

          ReadStream<T> endHandler(Handler<Void> 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

    - #### toObservable

          Observable<T> toObservable()

    - #### newInstance

          static <T> ReadStream<T> newInstance(ReadStream arg)

    - #### newInstance

          static <T> ReadStream<T> newInstance(ReadStream arg,
                                               <any> __typeArg_T)

Copyright © 2018 Eclipse. All rights reserved.