Class Http2Blueprint$

java.lang.Object
org.apache.pekko.http.impl.engine.http2.Http2Blueprint$

public class Http2Blueprint$ extends Object
INTERNAL API
  • Field Details

    • MODULE$

      public static final Http2Blueprint$ MODULE$
      Static reference to the singleton instance of this Scala object.
  • Constructor Details

    • Http2Blueprint$

      public Http2Blueprint$()
  • Method Details

    • serverStackTls

      public org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound,org.apache.pekko.stream.TLSProtocol.SslTlsInbound,HttpRequest,ServerTerminator> serverStackTls(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, TelemetrySpi telemetry, DateHeaderRendering dateHeaderRendering)
    • serverStack

      public org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,HttpRequest,ServerTerminator> serverStack(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, scala.collection.immutable.Seq<FrameEvent.Setting> initialDemuxerSettings, boolean upgraded, TelemetrySpi telemetry, DateHeaderRendering dateHeaderRendering)
    • clientStack

      public org.apache.pekko.stream.scaladsl.BidiFlow<HttpRequest,org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,HttpResponse,org.apache.pekko.NotUsed> clientStack(ClientConnectionSettings settings, org.apache.pekko.event.LoggingAdapter log, TelemetrySpi telemetry)
    • httpLayerClient

      public org.apache.pekko.stream.scaladsl.BidiFlow<HttpRequest,Http2SubStream,Http2SubStream,HttpResponse,org.apache.pekko.NotUsed> httpLayerClient(HttpHeaderParser masterHttpHeaderParser, ClientConnectionSettings settings, org.apache.pekko.event.LoggingAdapter log)
    • idleTimeoutIfConfigured

      public org.apache.pekko.stream.scaladsl.BidiFlow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> idleTimeoutIfConfigured(scala.concurrent.duration.Duration timeout)
    • errorHandling

      public org.apache.pekko.stream.scaladsl.BidiFlow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> errorHandling(org.apache.pekko.event.LoggingAdapter log)
    • framing

      public org.apache.pekko.stream.scaladsl.BidiFlow<FrameEvent,org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,FrameEvent,org.apache.pekko.NotUsed> framing(org.apache.pekko.event.LoggingAdapter log)
    • framingClient

      public org.apache.pekko.stream.scaladsl.BidiFlow<FrameEvent,org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,FrameEvent,org.apache.pekko.NotUsed> framingClient(org.apache.pekko.event.LoggingAdapter log)
    • frameTypeAliasToFrameTypeName

      public scala.Option<String> frameTypeAliasToFrameTypeName(String frameType)
    • hpackCoding

      public org.apache.pekko.stream.scaladsl.BidiFlow<FrameEvent,FrameEvent,FrameEvent,FrameEvent,org.apache.pekko.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 org.apache.pekko.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)
    • clientDemux

      public org.apache.pekko.stream.scaladsl.BidiFlow<Http2SubStream,FrameEvent,FrameEvent,Http2SubStream,ServerTerminator> clientDemux(Http2ClientSettings settings, HttpHeaderParser masterHttpHeaderParser)
      Creates substreams for every stream and manages stream state machines and handles priorization (TODO: later)
      Parameters:
      settings - (undocumented)
      masterHttpHeaderParser - (undocumented)
      Returns:
      (undocumented)
    • httpLayer

      public org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,Http2SubStream,Http2SubStream,HttpRequest,org.apache.pekko.NotUsed> httpLayer(ServerSettings settings, org.apache.pekko.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 org.apache.pekko.stream.scaladsl.Flow<HttpRequest,HttpResponse,org.apache.pekko.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)
    • logParsingError

      public void logParsingError(ErrorInfo info, org.apache.pekko.event.LoggingAdapter log, ParserSettings.ErrorLoggingVerbosity setting)
    • unwrapTls

      public org.apache.pekko.stream.scaladsl.BidiFlow<org.apache.pekko.util.ByteString,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound,org.apache.pekko.stream.TLSProtocol.SslTlsInbound,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> unwrapTls()