Class HpackEncoder

java.lang.Object
org.eclipse.jetty.http2.hpack.HpackEncoder

public class HpackEncoder extends Object
  • Field Details

    • LOG

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

      private static final org.eclipse.jetty.http.HttpField[] STATUSES
    • DO_NOT_HUFFMAN

      static final EnumSet<org.eclipse.jetty.http.HttpHeader> DO_NOT_HUFFMAN
    • DO_NOT_INDEX

      static final EnumSet<org.eclipse.jetty.http.HttpHeader> DO_NOT_INDEX
    • NEVER_INDEX

      static final EnumSet<org.eclipse.jetty.http.HttpHeader> NEVER_INDEX
    • IGNORED_HEADERS

      private static final EnumSet<org.eclipse.jetty.http.HttpHeader> IGNORED_HEADERS
    • TE_TRAILERS

      private static final org.eclipse.jetty.http.PreEncodedHttpField TE_TRAILERS
    • C_SCHEME_HTTP

      private static final org.eclipse.jetty.http.PreEncodedHttpField C_SCHEME_HTTP
    • C_SCHEME_HTTPS

      private static final org.eclipse.jetty.http.PreEncodedHttpField C_SCHEME_HTTPS
    • C_METHODS

      private static final EnumMap<org.eclipse.jetty.http.HttpMethod,org.eclipse.jetty.http.PreEncodedHttpField> C_METHODS
    • _context

      private final HpackContext _context
    • _debug

      private final boolean _debug
    • _maxTableCapacity

      private int _maxTableCapacity
    • _tableCapacity

      private int _tableCapacity
    • _maxHeaderListSize

      private int _maxHeaderListSize
    • _headerListSize

      private int _headerListSize
    • _validateEncoding

      private boolean _validateEncoding
    • _maxDynamicTableSizeSent

      private boolean _maxDynamicTableSizeSent
  • Constructor Details

    • HpackEncoder

      @Deprecated public HpackEncoder(int localMaxDynamicTableSize)
      Deprecated.
    • HpackEncoder

      @Deprecated public HpackEncoder(int localMaxDynamicTableSize, int remoteMaxDynamicTableSize)
      Deprecated.
    • HpackEncoder

      @Deprecated public HpackEncoder(int localMaxDynamicTableSize, int remoteMaxDynamicTableSize, int maxHeaderListSize)
      Deprecated.
    • HpackEncoder

      public HpackEncoder()
  • Method Details

    • getMaxTableCapacity

      public int getMaxTableCapacity()
    • setMaxTableCapacity

      public void setMaxTableCapacity(int maxTableSizeLimit)

      Sets the limit for the capacity of the dynamic header table.

      This value is set by the remote peer via the SETTINGS_HEADER_TABLE_SIZE setting.

      Parameters:
      maxTableSizeLimit - the limit for capacity of the dynamic header table
    • getTableCapacity

      public int getTableCapacity()
    • setTableCapacity

      public void setTableCapacity(int tableCapacity)

      Sets the capacity of the dynamic header table.

      The value of the capacity may be changed from 0 up to getMaxTableCapacity(). An HPACK instruction with the new capacity value will be sent to the decoder when the next call to encode(ByteBuffer, MetaData) is made.

      Parameters:
      tableCapacity - the capacity of the dynamic header table
    • getMaxHeaderListSize

      public int getMaxHeaderListSize()
    • setMaxHeaderListSize

      public void setMaxHeaderListSize(int maxHeaderListSize)
    • getHpackContext

      public HpackContext getHpackContext()
    • setRemoteMaxDynamicTableSize

      @Deprecated public void setRemoteMaxDynamicTableSize(int maxTableSize)
      Deprecated.
    • setLocalMaxDynamicTableSize

      @Deprecated public void setLocalMaxDynamicTableSize(int maxTableSizeLimit)
      Deprecated.
    • isValidateEncoding

      public boolean isValidateEncoding()
    • setValidateEncoding

      public void setValidateEncoding(boolean validateEncoding)
    • encode

      public void encode(ByteBuffer buffer, org.eclipse.jetty.http.MetaData metadata) throws HpackException
      Throws:
      HpackException
    • encodeMaxDynamicTableSize

      public void encodeMaxDynamicTableSize(ByteBuffer buffer, int maxTableSize)
    • encode

      public void encode(ByteBuffer buffer, org.eclipse.jetty.http.HttpField field)
    • encodeName

      private void encodeName(ByteBuffer buffer, byte mask, int bits, String name, HpackContext.Entry entry)
    • encodeValue

      static void encodeValue(ByteBuffer buffer, boolean huffman, String value)