Top Description Inners Fields Constructors Methods
org.eclipse.jetty.http2.hpack

public Class HpackContext

extends Object
Class Inheritance
Imports
java.nio.ByteBuffer, java.util.Arrays, .HashMap, .HashSet, .Map, .Set, org.eclipse.jetty.http.HttpField, .HttpHeader, .HttpMethod, .HttpScheme, org.eclipse.jetty.http.compression.HuffmanEncoder, .NBitIntegerEncoder, org.eclipse.jetty.http2.hpack.internal.StaticTableHttpField, org.eclipse.jetty.util.Index, .StringUtil, org.slf4j.Logger, .LoggerFactory

HPACK - Header Compression for HTTP/2

This class maintains the compression context for a single HTTP/2 connection. Specifically it holds the static and dynamic Header Field Tables and the associated sizes and limits.

It is compliant with draft 11 of the specification

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class
public static class
public static class

Field Summary

Modifier and TypeField and Description
private static final Map<HttpField, HpackContext.Entry>
private static final Index<HpackContext.StaticEntry>
private static final HpackContext.StaticEntry[]
private static final HpackContext.StaticEntry[]
private final HpackContext.DynamicTable
private final Map<HttpField, HpackContext.Entry>
private int
private final Map<String, HpackContext.Entry>
private int
public static final int
private static final String
private static final Logger
public static final int
public static final String[][]

Constructor Summary

AccessConstructor and Description
pack-priv
HpackContext(int maxTableSize)

Method Summary

Modifier and TypeMethod and Description
public HpackContext.Entry
add(HttpField field)

public HpackContext.Entry
get(HttpField field)

public HpackContext.Entry
get(String name)

public HpackContext.Entry
get(int index)

public HpackContext.Entry
get(HttpHeader header)

public int
getDynamicTableSize()

Returns: Current Dynamic table size in Octets

public int
getMaxDynamicTableSize()

Returns: Max Dynamic table size in Octets

public static HpackContext.Entry
public int
public void
resize(int newMaxDynamicTableSize)

public int
size()

Returns: Current dynamic table size in entries

public static int
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

__staticFieldMapback to summary
private static final Map<HttpField, HpackContext.Entry> __staticFieldMap
__staticNameMapback to summary
private static final Index<HpackContext.StaticEntry> __staticNameMap
__staticTableback to summary
private static final HpackContext.StaticEntry[] __staticTable
__staticTableByHeaderback to summary
private static final HpackContext.StaticEntry[] __staticTableByHeader
_dynamicTableback to summary
private final HpackContext.DynamicTable _dynamicTable
_fieldMapback to summary
private final Map<HttpField, HpackContext.Entry> _fieldMap
_maxTableSizeback to summary
private int _maxTableSize
_nameMapback to summary
private final Map<String, HpackContext.Entry> _nameMap
_tableSizeback to summary
private int _tableSize
DEFAULT_MAX_TABLE_CAPACITYback to summary
public static final int DEFAULT_MAX_TABLE_CAPACITY
EMPTYback to summary
private static final String EMPTY
LOGback to summary
private static final Logger LOG
STATIC_SIZEback to summary
public static final int STATIC_SIZE
STATIC_TABLEback to summary
public static final String[][] STATIC_TABLE

Constructor Detail

HpackContextback to summary
pack-priv HpackContext(int maxTableSize)

Method Detail

addback to summary
public HpackContext.Entry add(HttpField field)
getback to summary
public HpackContext.Entry get(HttpField field)
getback to summary
public HpackContext.Entry get(String name)
getback to summary
public HpackContext.Entry get(int index)
getback to summary
public HpackContext.Entry get(HttpHeader header)
getDynamicTableSizeback to summary
public int getDynamicTableSize()
Returns:int

Current Dynamic table size in Octets

getMaxDynamicTableSizeback to summary
public int getMaxDynamicTableSize()
Returns:int

Max Dynamic table size in Octets

getStaticback to summary
public static HpackContext.Entry getStatic(HttpHeader header)
indexback to summary
public int index(HpackContext.Entry entry)
resizeback to summary
public void resize(int newMaxDynamicTableSize)
sizeback to summary
public int size()
Returns:int

Current dynamic table size in entries

staticIndexback to summary
public static int staticIndex(HttpHeader header)
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override
org.eclipse.jetty.http2.hpack back to summary

private Class HpackContext.DynamicTable

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
private HpackContext.Entry[]
private final int
private int
private int

Constructor Summary

AccessConstructor and Description
private
DynamicTable(int initCapacity)

Method Summary

Modifier and TypeMethod and Description
public void
private void
private void
public HpackContext.Entry
get(int index)

public int
public int
size()

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

_entriesback to summary
private HpackContext.Entry[] _entries
_growbyback to summary
private final int _growby
_offsetback to summary
private int _offset
_sizeback to summary
private int _size

Constructor Detail

DynamicTableback to summary
private DynamicTable(int initCapacity)

Method Detail

addback to summary
public void add(HpackContext.Entry entry)
evictback to summary
private void evict()
evictAllback to summary
private void evictAll()
getback to summary
public HpackContext.Entry get(int index)
indexback to summary
public int index(HpackContext.Entry entry)
sizeback to summary
public int size()
org.eclipse.jetty.http2.hpack back to summary

public Class HpackContext.Entry

extends Object
Class Inheritance
Known Direct Subclasses
org.eclipse.jetty.http2.hpack.HpackContext.StaticEntry

Field Summary

Modifier and TypeField and Description
pack-priv final HttpField
pack-priv int

Constructor Summary

AccessConstructor and Description
pack-priv
pack-priv

Method Summary

Modifier and TypeMethod and Description
public HttpField
public int
public byte[]
public boolean
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

_fieldback to summary
pack-priv final HttpField _field
_slotback to summary
pack-priv int _slot

Constructor Detail

Entryback to summary
pack-priv Entry()
Entryback to summary
pack-priv Entry(HttpField field)

Method Detail

getHttpFieldback to summary
public HttpField getHttpField()
getSizeback to summary
public int getSize()
getStaticHuffmanValueback to summary
public byte[] getStaticHuffmanValue()
isStaticback to summary
public boolean isStatic()
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override
org.eclipse.jetty.http2.hpack back to summary

public Class HpackContext.StaticEntry

extends Entry
Class Inheritance

Field Summary

Modifier and TypeField and Description
private final byte
private final byte[]
Inherited from org.eclipse.jetty.http2.hpack.HpackContext.Entry:
_field_slot

Constructor Summary

AccessConstructor and Description
pack-priv
StaticEntry(int index, HttpField field)

Method Summary

Modifier and TypeMethod and Description
public byte
public byte[]
public boolean
Inherited from org.eclipse.jetty.http2.hpack.HpackContext.Entry:
getHttpFieldgetSizetoString

Field Detail

_encodedFieldback to summary
private final byte _encodedField
_huffmanValueback to summary
private final byte[] _huffmanValue

Constructor Detail

StaticEntryback to summary
pack-priv StaticEntry(int index, HttpField field)

Method Detail

getEncodedFieldback to summary
public byte getEncodedField()
getStaticHuffmanValueback to summary
public byte[] getStaticHuffmanValue()

Overrides org.eclipse.jetty.http2.hpack.HpackContext.Entry.getStaticHuffmanValue.

Annotations
@Override
isStaticback to summary
public boolean isStatic()

Overrides org.eclipse.jetty.http2.hpack.HpackContext.Entry.isStatic.

Annotations
@Override