Class Http2ClientStreamTransportState
java.lang.Object
io.grpc.internal.AbstractStream.TransportState
io.grpc.internal.AbstractClientStream.TransportState
io.grpc.internal.Http2ClientStreamTransportState
- All Implemented Interfaces:
ApplicationThreadDeframer.TransportExecutor, ApplicationThreadDeframerListener.TransportExecutor, MessageDeframer.Listener
- Direct Known Subclasses:
NettyClientStream.TransportState
Base implementation for client streams using HTTP2 as the transport.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Charsetprivate booleanprivate static final InternalMetadata.TrustedAsciiMarshaller<Integer> Metadata marshaller for HTTP status lines.private static final Metadata.Key<Integer> private Statusprivate MetadataFields inherited from class AbstractStream.TransportState
DEFAULT_ONREADY_THRESHOLD -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedHttp2ClientStreamTransportState(int maxMessageSize, StatsTraceContext statsTraceCtx, TransportTracer transportTracer, CallOptions options) -
Method Summary
Modifier and TypeMethodDescriptionprivate static CharsetextractCharset(Metadata headers) Inspect the raw metadata and figure out what charset is being used.protected abstract voidhttp2ProcessingFailed(Status status, boolean stopDelivery, Metadata trailers) Called to process a failure in HTTP/2 processing.private StatusstatusFromTrailers(Metadata trailers) Extract the response status from trailers.private static voidstripTransportDetails(Metadata metadata) Strip HTTP transport implementation details so they don't leak via metadata into the application layer.protected voidtransportDataReceived(ReadableBuffer frame, boolean endOfStream) Called by subclasses whenever a data frame is received from the transport.protected voidtransportHeadersReceived(Metadata headers) Called by subclasses wheneverHeadersare received from the transport.protected voidtransportTrailersReceived(Metadata trailers) Called by subclasses for the terminal trailer metadata on a stream.private StatusvalidateInitialMetadata(Metadata headers) Inspect initial headers to make sure they conform to HTTP and gRPC, returning aStatuson failure.Methods inherited from class AbstractClientStream.TransportState
deframerClosed, inboundDataReceived, inboundHeadersReceived, inboundTrailersReceived, isOutboundClosed, listener, setListener, transportReportStatus, transportReportStatusMethods inherited from class AbstractStream.TransportState
closeDeframer, deframe, getStatsTraceContext, getTransportTracer, isStreamDeallocated, messagesAvailable, onSentBytes, onStreamAllocated, onStreamDeallocated, optimizeForDirectExecutor, requestMessagesFromDeframerForTesting, setDecompressor, setFullStreamDecompressor, setMaxInboundMessageSize, setOnReadyThresholdMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ApplicationThreadDeframerListener.TransportExecutor
runOnTransportThreadMethods inherited from interface MessageDeframer.Listener
bytesRead, deframeFailed
-
Field Details
-
HTTP_STATUS_MARSHALLER
Metadata marshaller for HTTP status lines. -
HTTP2_STATUS
-
transportError
-
transportErrorMetadata
-
errorCharset
-
headersReceived
private boolean headersReceived
-
-
Constructor Details
-
Http2ClientStreamTransportState
protected Http2ClientStreamTransportState(int maxMessageSize, StatsTraceContext statsTraceCtx, TransportTracer transportTracer, CallOptions options)
-
-
Method Details
-
http2ProcessingFailed
-
transportHeadersReceived
Called by subclasses wheneverHeadersare received from the transport.- Parameters:
headers- the received headers
-
transportDataReceived
Called by subclasses whenever a data frame is received from the transport.- Parameters:
frame- the received data frameendOfStream-trueif there will be no more data received for this stream
-
transportTrailersReceived
Called by subclasses for the terminal trailer metadata on a stream.- Parameters:
trailers- the received terminal trailer metadata
-
statusFromTrailers
-
validateInitialMetadata
-
extractCharset
-
stripTransportDetails
Strip HTTP transport implementation details so they don't leak via metadata into the application layer.
-