@ThreadSafe public interface ClientInterceptor
Implementers use this mechanism to add cross-cutting behavior to
stub implementations. Common examples of such behavior include:
<ReqT,RespT> ClientCall<ReqT,RespT> interceptCall(MethodDescriptor<ReqT,RespT> method, CallOptions callOptions, Channel next)
ClientCallcreation by the
Many variations of interception are possible. Complex implementations may return a wrapper
around the result of
next.newCall(), whereas a simpler implementation may just modify
the header metadata prior to returning the result of
next.newCall() must not be called under a different
other than the current
Context. The outcome of such usage is undefined and may cause
memory leak due to unbounded chain of
method- the remote method to be called.
callOptions- the runtime options to be applied to this call.
next- the channel which is being intercepted.