Interface ClientStream<RequestT> (2.39.0)

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();
 

Type Parameter

NameDescription
RequestT

Methods

closeSend()

public abstract 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.

closeSendWithError(Throwable t)

public abstract void closeSendWithError(Throwable t)

Closes the stream with an error. If called, this must be the last call on this ClientStream.

Parameter
NameDescription
tThrowable

isSendReady()

public abstract 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.

Returns
TypeDescription
boolean

send(RequestT request)

public abstract void send(RequestT request)

Sends a request to the server. It is an error to call this if the stream is already closed.

Parameter
NameDescription
requestRequestT