public abstract static class ClientInterceptors.CheckedForwardingClientCall<ReqT,RespT> extends ForwardingClientCall<ReqT,RespT>
ForwardingClientCall that delivers exceptions from its start logic to the
call listener.
ClientCall.start(ClientCall.Listener, Metadata) should not throw any
exception other than those caused by misuse, e.g., IllegalStateException. CheckedForwardingClientCall provides checkedStart() in which throwing exceptions is
allowed.
ForwardingClientCall.SimpleForwardingClientCall<ReqT,RespT>ClientCall.Listener<T>| Modifier | Constructor and Description |
|---|---|
protected |
CheckedForwardingClientCall(ClientCall<ReqT,RespT> delegate) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
checkedStart(ClientCall.Listener<RespT> responseListener,
Metadata headers)
Subclasses implement the start logic here that would normally belong to
start(). |
protected ClientCall<ReqT,RespT> |
delegate()
Returns the delegated
ClientCall. |
void |
start(ClientCall.Listener<RespT> responseListener,
Metadata headers)
Start a call, using
responseListener for processing response messages. |
cancel, cancel, halfClose, isReady, request, sendMessage, setMessageCompressionprotected CheckedForwardingClientCall(ClientCall<ReqT,RespT> delegate)
protected abstract void checkedStart(ClientCall.Listener<RespT> responseListener, Metadata headers) throws Exception
start().
Implementation should call this.delegate().start() in the normal path. Exceptions
may safely be thrown prior to calling this.delegate().start(). Such exceptions will
be handled by CheckedForwardingClientCall and be delivered to responseListener. Exceptions must not be thrown after calling this.delegate().start(), as this can result in ClientCall.Listener.onClose(io.grpc.Status, io.grpc.Metadata) being
called multiple times.
Exceptionprotected final ClientCall<ReqT,RespT> delegate()
ForwardingClientCallClientCall.delegate in class ForwardingClientCall<ReqT,RespT>public final void start(ClientCall.Listener<RespT> responseListener, Metadata headers)
ClientCallresponseListener for processing response messages.
It must be called prior to any other method on this class. Since Metadata is not
thread-safe, the caller must not access headers after this point.
start in class ForwardingClientCall<ReqT,RespT>responseListener - receives response messagesheaders - which can contain extra call metadata, e.g. authentication credentials.