Class Parser

  • Direct Known Subclasses:
    ServerParser

    public class Parser
    extends java.lang.Object

    The HTTP/2 protocol parser.

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

    • Field Detail

      • LOG

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

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

        private final BodyParser[] bodyParsers
      • maxFrameSize

        private int maxFrameSize
      • maxSettingsKeys

        private int maxSettingsKeys
      • continuation

        private boolean continuation
    • Constructor Detail

      • 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 Detail

      • init

        @Deprecated
        public void init​(java.util.function.UnaryOperator<Parser.Listener> wrapper)
        Deprecated.
      • reset

        private void reset()
      • parse

        public void parse​(java.nio.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​(java.nio.ByteBuffer buffer)
      • parseBody

        protected boolean parseBody​(java.nio.ByteBuffer buffer)
      • connectionFailure

        private boolean connectionFailure​(java.nio.ByteBuffer buffer,
                                          ErrorCode error,
                                          java.lang.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,
                                               java.lang.String reason)