class HpackEncoder {

  public void setMaxHeaderTableSize(final ByteBuf out, final long maxHeaderTableSize)
      throws Http2Exception {
    if (maxHeaderTableSize < MIN_HEADER_TABLE_SIZE || maxHeaderTableSize > MAX_HEADER_TABLE_SIZE) {
      throw connectionError(
          PROTOCOL_ERROR,
          "Header Table Size must be >= %d and <= %d but was %d",
          MIN_HEADER_TABLE_SIZE,
          MAX_HEADER_TABLE_SIZE,
          maxHeaderTableSize);
    }
    if (this.maxHeaderTableSize == maxHeaderTableSize) {
      return;
    }
    this.maxHeaderTableSize = maxHeaderTableSize;
    ensureCapacity(0);
    // Casting to integer is safe as we verified the maxHeaderTableSize is a valid unsigned int.
    encodeInteger(out, 0x20, 5, maxHeaderTableSize);
  }

    HpackEncoder();
    HpackEncoder(final boolean ignoreMaxHeaderListSize);
    HpackEncoder(final boolean ignoreMaxHeaderListSize, final int arraySizeHint);

}