io.vertx.grpc.common

## Interface GrpcReadStream<T>

- All Superinterfaces:
    ReadStream<T>, StreamBase
  All Known Subinterfaces:
    GrpcClientResponse<Req,Resp>, GrpcServerRequest<Req,Resp>

      public interface GrpcReadStream<T>
      extends ReadStream<T>

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `<R,A> Future<R>` | `collecting(java.util.stream.Collector<T,A,R> collector)`
    `String` | `encoding()`
    `Future<Void>` | `end()`
    `GrpcReadStream<T>` | `endHandler(Handler<Void> handler)` Set an end handler.
    `GrpcReadStream<T>` | `errorHandler(Handler<GrpcError> handler)` Set a handler to be notified with gRPC errors.
    `GrpcReadStream<T>` | `exceptionHandler(Handler<Throwable> handler)` Set an exception handler on the read stream.
    `GrpcReadStream<T>` | `fetch(long l)` Fetch the specified `amount` of elements.
    `GrpcReadStream<T>` | `handler(Handler<T> handler)` Set a data handler.
    `MultiMap` | `headers()`
    `Future<T>` | `last()`
    `GrpcReadStream<T>` | `messageHandler(Handler<GrpcMessage> handler)` Set a handler to be notified with incoming encoded messages.
    `GrpcReadStream<T>` | `pause()` Pause the `ReadStream`, it sets the buffer in `fetch` mode and clears the actual demand.
    `default void` | `pipeTo(WriteStream<T> dst, Handler<AsyncResult<Void>> handler)` Pipe this `ReadStream` to the `WriteStream`.
    `GrpcReadStream<T>` | `resume()` Resume reading, and sets the buffer in `flowing` mode.

    - ### Methods inherited from interface io.vertx.core.streams.ReadStream

      `pipe, pipeTo`

- - ### Method Detail

    - #### headers

          MultiMap headers()

      Returns:
        the `MultiMap` to read metadata headers

    - #### encoding

          String encoding()

      Returns:
        the stream encoding, e.g `identity` or `gzip`

    - #### messageHandler

          GrpcReadStream<T> messageHandler(Handler<GrpcMessage> handler)

      Set a handler to be notified with incoming encoded messages. The `handler` is responsible for fully decoding incoming messages, including compression.
      Parameters:
        `handler` - the message handler
      Returns:
        a reference to this, so the API can be used fluently

    - #### errorHandler

          GrpcReadStream<T> errorHandler(Handler<GrpcError> handler)

      Set a handler to be notified with gRPC errors.
      Parameters:
        `handler` - the error handler
      Returns:
        a reference to this, so the API can be used fluently

    - #### exceptionHandler

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

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

    - #### handler

          GrpcReadStream<T> handler(Handler<T> handler)

      Description copied from interface: `ReadStream`
      Set a data handler. As data is read, the handler will be called with the data.
      Specified by:
        `handler` in interface `ReadStream<T>`
      Returns:
        a reference to this, so the API can be used fluently

    - #### pause

          GrpcReadStream<T> pause()

      Description copied from interface: `ReadStream`
      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`.

      Specified by:
        `pause` in interface `ReadStream<T>`
      Returns:
        a reference to this, so the API can be used fluently

    - #### resume

          GrpcReadStream<T> resume()

      Description copied from interface: `ReadStream`
      Resume reading, and sets the buffer in `flowing` mode.

      If the `ReadStream` has been paused, reading will recommence on it.
      Specified by:
        `resume` in interface `ReadStream<T>`
      Returns:
        a reference to this, so the API can be used fluently

    - #### fetch

          GrpcReadStream<T> fetch(long l)

      Description copied from interface: `ReadStream`
      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.
      Specified by:
        `fetch` in interface `ReadStream<T>`
      Returns:
        a reference to this, so the API can be used fluently

    - #### endHandler

          GrpcReadStream<T> endHandler(Handler<Void> handler)

      Description copied from interface: `ReadStream`
      Set an end handler. Once the stream has ended, and there is no more data to be read, this handler will be called.
      Specified by:
        `endHandler` in interface `ReadStream<T>`
      Returns:
        a reference to this, so the API can be used fluently

    - #### last

          Future<T> last()

      Returns:
        the last element of the stream

    - #### end

          Future<Void> end()

      Returns:
        a future signaling when the response has been fully received successfully or failed

    - #### collecting

          <R,A> Future<R> collecting(java.util.stream.Collector<T,A,R> collector)

      Returns:
        the result of applying a collector on the stream

    - #### pipeTo

          default void pipeTo(WriteStream<T> dst,
                              Handler<AsyncResult<Void>> handler)

      Description copied from interface: `ReadStream`
      Pipe this `ReadStream` to the `WriteStream`.

      Elements emitted by this stream will be written to the write stream until this stream ends or fails.

      Once this stream has ended or failed, the write stream will be ended and the `handler` will be called with the result.

      Specified by:
        `pipeTo` in interface `ReadStream<T>`
      Parameters:
        `dst` - the destination write stream

Copyright © 2022 Eclipse. All rights reserved.