Interface ClientStream<RequestT>

Type Parameters:
RequestT - The type of each request.
All Known Implementing Classes:
BidiStream

public interface ClientStream<RequestT>
A wrapper used to send requests to the server.

After sending requests, users must either call closeSend() or closeSendWithError(Throwable) on the stream. The error, if any, will be propagated to the server.

Example usage:


 ClientStream<String> stream = ...;
 List<String> lines = getLinesFromFile();
 for (String line : lines) {
   stream.send(line);
 }
 stream.closeSend();
 
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Closes the stream.
    void
    Closes the stream with an error.
    boolean
    Reports whether a new request can be sent without excessive buffering.
    void
    send(RequestT request)
    Sends a request to the server.
  • Method Details

    • send

      void send(RequestT request)
      Sends a request to the server. It is an error to call this if the stream is already closed.
    • closeSendWithError

      void closeSendWithError(Throwable t)
      Closes the stream with an error. If called, this must be the last call on this ClientStream.
    • closeSend

      void closeSend()
      Closes the stream. If called, this must be the last call on this ClientStream.

      Note that if close() itself throws, a further call to closeSendWithError is not allowed.

    • isSendReady

      boolean isSendReady()
      Reports whether a new request can be sent without excessive buffering.

      This is only an optimization hint to the user. It is correct, if suboptimal, to call send if isSendReady returns false.