Package io.grpc.protobuf.services
Class BinaryLogProvider.BinaryLogShim
- java.lang.Object
-
- io.grpc.protobuf.services.BinaryLogProvider.BinaryLogShim
-
- All Implemented Interfaces:
ClientInterceptor
- Enclosing class:
- BinaryLogProvider
private final class BinaryLogProvider.BinaryLogShim extends java.lang.Object implements ClientInterceptor
The pipeline of interceptors is hard coded when theManagedChannel
is created. This shim interceptor should always be installed as a placeholder. When a call starts, this interceptor checks with theBinaryLogProvider
to see if logging should happen for this particularClientCall
's method.
-
-
Constructor Summary
Constructors Modifier Constructor Description private
BinaryLogShim()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <ReqT,RespT>
ClientCall<ReqT,RespT>interceptCall(MethodDescriptor<ReqT,RespT> method, CallOptions callOptions, Channel next)
-
-
-
Method Detail
-
interceptCall
public <ReqT,RespT> ClientCall<ReqT,RespT> interceptCall(MethodDescriptor<ReqT,RespT> method, CallOptions callOptions, Channel next)
Description copied from interface:ClientInterceptor
InterceptClientCall
creation by thenext
Channel
.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 ofnext.newCall()
.next.newCall()
must not be called under a differentContext
other than the currentContext
. The outcome of such usage is undefined and may cause memory leak due to unbounded chain ofContext
s.- Specified by:
interceptCall
in interfaceClientInterceptor
- Parameters:
method
- the remote method to be called.callOptions
- the runtime options to be applied to this call.next
- the channel which is being intercepted.- Returns:
- the call object for the remote operation, never
null
.
-
-