Package io.grpc
Class ServerTransportFilter
java.lang.Object
io.grpc.ServerTransportFilter
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/2132")
public abstract class ServerTransportFilter
extends Object
Listens on server transport life-cycle events, with the capability to read and/or change
transport attributes. Attributes returned by this filter will be merged into
ServerCall.getAttributes()
.
Multiple filters maybe registered to a server, in which case the output of a filter is the
input of the next filter. For example, what returned by transportReady(io.grpc.Attributes)
of a filter is
passed to the same method of the next filter, and the last filter's return value is the effective
transport attributes.
Grpc
defines commonly used attributes.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiontransportReady
(Attributes transportAttrs) Called when a transport is ready to process streams.void
transportTerminated
(Attributes transportAttrs) Called when a transport is terminated.
-
Constructor Details
-
ServerTransportFilter
public ServerTransportFilter()
-
-
Method Details
-
transportReady
Called when a transport is ready to process streams. All necessary handshakes, e.g., TLS handshake, are done at this point.Note the implementation should always inherit the passed-in attributes using
Attributes.newBuilder(transportAttrs)
, instead of creating one from scratch.- Parameters:
transportAttrs
- current transport attributes- Returns:
- new transport attributes. Default implementation returns the passed-in attributes intact.
-
transportTerminated
Called when a transport is terminated. Default implementation is no-op.- Parameters:
transportAttrs
- the effective transport attributes, which is what returned bytransportReady(io.grpc.Attributes)
of the last executed filter.
-