Class Http2Blueprint


  • public class Http2Blueprint
    extends java.lang.Object
    INTERNAL API
    • Constructor Detail

      • Http2Blueprint

        public Http2Blueprint()
    • Method Detail

      • idleTimeoutIfConfigured

        public static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,​akka.util.ByteString,​akka.util.ByteString,​akka.util.ByteString,​akka.NotUsed> idleTimeoutIfConfigured​(scala.concurrent.duration.Duration timeout)
      • errorHandling

        public static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,​akka.util.ByteString,​akka.util.ByteString,​akka.util.ByteString,​akka.NotUsed> errorHandling​(akka.event.LoggingAdapter log)
      • framing

        public static akka.stream.scaladsl.BidiFlow<FrameEvent,​akka.util.ByteString,​akka.util.ByteString,​FrameEvent,​akka.NotUsed> framing​(Http2ServerSettings http2ServerSettings,
                                                                                                                                                                  akka.event.LoggingAdapter log)
      • framingClient

        public static akka.stream.scaladsl.BidiFlow<FrameEvent,​akka.util.ByteString,​akka.util.ByteString,​FrameEvent,​akka.NotUsed> framingClient​(akka.event.LoggingAdapter log)
      • hpackCoding

        public static akka.stream.scaladsl.BidiFlow<FrameEvent,​FrameEvent,​FrameEvent,​FrameEvent,​akka.NotUsed> hpackCoding​(HttpHeaderParser masterHttpHeaderParser,
                                                                                                                                                  ParserSettings parserSettings)
        Runs hpack encoding and decoding. Incoming frames that are processed are HEADERS and CONTINUATION. Outgoing frame is ParsedHeadersFrame. Other frames are propagated unchanged.

        TODO: introduce another FrameEvent type that exclude HeadersFrame and ContinuationFrame from reaching the higher-level.

        Parameters:
        masterHttpHeaderParser - (undocumented)
        parserSettings - (undocumented)
        Returns:
        (undocumented)
      • serverDemux

        public static akka.stream.scaladsl.BidiFlow<Http2SubStream,​FrameEvent,​FrameEvent,​Http2SubStream,​ServerTerminator> serverDemux​(Http2ServerSettings settings,
                                                                                                                                                              scala.collection.immutable.Seq<FrameEvent.Setting> initialDemuxerSettings,
                                                                                                                                                              boolean upgraded)
        Creates substreams for every stream and manages stream state machines and handles priorization (TODO: later)
        Parameters:
        settings - (undocumented)
        initialDemuxerSettings - (undocumented)
        upgraded - (undocumented)
        Returns:
        (undocumented)
      • httpLayer

        public static akka.stream.scaladsl.BidiFlow<HttpResponse,​Http2SubStream,​Http2SubStream,​HttpRequest,​akka.NotUsed> httpLayer​(ServerSettings settings,
                                                                                                                                                           akka.event.LoggingAdapter log,
                                                                                                                                                           DateHeaderRendering dateHeaderRendering)
        Translation between substream frames and Http messages (both directions)

        To make use of parallelism requests and responses need to be associated (other than by ordering), suggestion is to add a special (virtual) header containing the streamId (or any other kind of token) is added to the HttRequest that must be reproduced in an HttpResponse. This can be done automatically for the bind API but for bindFlow the user needs to take of this manually.

        Parameters:
        settings - (undocumented)
        log - (undocumented)
        dateHeaderRendering - (undocumented)
        Returns:
        (undocumented)
      • handleWithStreamIdHeader

        public static akka.stream.scaladsl.Flow<HttpRequest,​HttpResponse,​akka.NotUsed> handleWithStreamIdHeader​(int parallelism,
                                                                                                                            scala.Function1<HttpRequest,​scala.concurrent.Future<HttpResponse>> handler,
                                                                                                                            scala.concurrent.ExecutionContext ec)
        Returns a flow that handles parallelism requests in parallel, automatically keeping track of the Http2StreamIdHeader between request and responses.
        Parameters:
        parallelism - (undocumented)
        handler - (undocumented)
        ec - (undocumented)
        Returns:
        (undocumented)
      • unwrapTls

        public static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,​akka.stream.TLSProtocol.SslTlsOutbound,​akka.stream.TLSProtocol.SslTlsInbound,​akka.util.ByteString,​akka.NotUsed> unwrapTls()