Class Parser

java.lang.Object
org.eclipse.jetty.http2.parser.Parser
Direct Known Subclasses:
ServerParser

public class Parser extends Object

The HTTP/2 protocol parser.

This parser makes use of the HeaderParser and of BodyParsers to parse HTTP/2 frames.

  • Field Details

    • LOG

      private static final org.eclipse.jetty.util.log.Logger LOG
    • byteBufferPool

      private final org.eclipse.jetty.io.ByteBufferPool byteBufferPool
    • headerParser

      private final HeaderParser headerParser
    • hpackDecoder

      private final HpackDecoder hpackDecoder
    • bodyParsers

      private final BodyParser[] bodyParsers
    • listener

      private Parser.Listener listener
    • unknownBodyParser

      private UnknownBodyParser unknownBodyParser
    • maxFrameSize

      private int maxFrameSize
    • maxSettingsKeys

      private int maxSettingsKeys
    • continuation

      private boolean continuation
    • state

      private Parser.State state
  • Constructor Details

    • Parser

      @Deprecated public Parser(org.eclipse.jetty.io.ByteBufferPool byteBufferPool, Parser.Listener listener, int maxDynamicTableSize, int maxHeaderSize)
      Deprecated.
    • Parser

      public Parser(org.eclipse.jetty.io.ByteBufferPool byteBufferPool, int maxHeaderSize)
    • Parser

      public Parser(org.eclipse.jetty.io.ByteBufferPool byteBufferPool, int maxHeaderSize, RateControl rateControl)
  • Method Details

    • init

      @Deprecated public void init(UnaryOperator<Parser.Listener> wrapper)
      Deprecated.
    • init

      public void init(Parser.Listener listener)
    • getListener

      protected Parser.Listener getListener()
    • getHpackDecoder

      public HpackDecoder getHpackDecoder()
    • reset

      private void reset()
    • parse

      public void parse(ByteBuffer buffer)

      Parses the given buffer bytes and emit events to a Parser.Listener.

      When this method returns, the buffer may not be fully consumed, so invocations to this method should be wrapped in a loop:

       while (buffer.hasRemaining())
           parser.parse(buffer);
       
      Parameters:
      buffer - the buffer to parse
    • parseHeader

      protected boolean parseHeader(ByteBuffer buffer)
    • parseBody

      protected boolean parseBody(ByteBuffer buffer)
    • connectionFailure

      private boolean connectionFailure(ByteBuffer buffer, ErrorCode error, String reason)
    • getFrameType

      protected int getFrameType()
    • hasFlag

      protected boolean hasFlag(int bit)
    • getMaxFrameLength

      @Deprecated public int getMaxFrameLength()
      Deprecated.
    • setMaxFrameLength

      @Deprecated public void setMaxFrameLength(int maxFrameSize)
      Deprecated.
    • getMaxFrameSize

      public int getMaxFrameSize()
    • setMaxFrameSize

      public void setMaxFrameSize(int maxFrameSize)
    • getMaxSettingsKeys

      public int getMaxSettingsKeys()
    • setMaxSettingsKeys

      public void setMaxSettingsKeys(int maxSettingsKeys)
    • notifyConnectionFailure

      protected void notifyConnectionFailure(int error, String reason)