Class Http2ClientStreamTransportState

    • Field Detail

      • HTTP2_STATUS

        private static final Metadata.Key<java.lang.Integer> HTTP2_STATUS
      • transportErrorMetadata

        private Metadata transportErrorMetadata
      • errorCharset

        private java.nio.charset.Charset errorCharset
      • headersReceived

        private boolean headersReceived
    • Method Detail

      • http2ProcessingFailed

        protected abstract void http2ProcessingFailed​(Status status,
                                                      boolean stopDelivery,
                                                      Metadata trailers)
        Called to process a failure in HTTP/2 processing. It should notify the transport to cancel the stream and call transportReportStatus().
      • transportHeadersReceived

        protected void transportHeadersReceived​(Metadata headers)
        Called by subclasses whenever Headers are received from the transport.
        Parameters:
        headers - the received headers
      • transportDataReceived

        protected void transportDataReceived​(ReadableBuffer frame,
                                             boolean endOfStream)
        Called by subclasses whenever a data frame is received from the transport.
        Parameters:
        frame - the received data frame
        endOfStream - true if there will be no more data received for this stream
      • transportTrailersReceived

        protected void transportTrailersReceived​(Metadata trailers)
        Called by subclasses for the terminal trailer metadata on a stream.
        Parameters:
        trailers - the received terminal trailer metadata
      • statusFromTrailers

        private Status statusFromTrailers​(Metadata trailers)
        Extract the response status from trailers.
      • validateInitialMetadata

        @Nullable
        private Status validateInitialMetadata​(Metadata headers)
        Inspect initial headers to make sure they conform to HTTP and gRPC, returning a Status on failure.
        Returns:
        status with description of failure, or null when valid
      • extractCharset

        private static java.nio.charset.Charset extractCharset​(Metadata headers)
        Inspect the raw metadata and figure out what charset is being used.
      • stripTransportDetails

        private static void stripTransportDetails​(Metadata metadata)
        Strip HTTP transport implementation details so they don't leak via metadata into the application layer.