HpackHeader Class — netty Architecture
Architecture documentation for the HpackHeader class in HpackHeader.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD db6b447d_1fcd_2801_03fc_5bf8c58eff65["HpackHeader"] ae0c8461_5b87_180e_b0c6_212e656f87bb["HpackHeader.java"] db6b447d_1fcd_2801_03fc_5bf8c58eff65 -->|defined in| ae0c8461_5b87_180e_b0c6_212e656f87bb 9bf28bea_6532_55d2_bd07_cf198918dc74["HpackHeader()"] db6b447d_1fcd_2801_03fc_5bf8c58eff65 -->|method| 9bf28bea_6532_55d2_bd07_cf198918dc74 1c59000a_4801_98d7_6cce_cb51cafc8405["createHeaders()"] db6b447d_1fcd_2801_03fc_5bf8c58eff65 -->|method| 1c59000a_4801_98d7_6cce_cb51cafc8405 2f64d97a_dbf8_2ec1_0fc5_38994a609423["randomBytes()"] db6b447d_1fcd_2801_03fc_5bf8c58eff65 -->|method| 2f64d97a_dbf8_2ec1_0fc5_38994a609423
Relationship Graph
Source Code
microbench/src/main/java/io/netty/handler/codec/http2/HpackHeader.java lines 44–84
@UnstableApi
public final class HpackHeader {
private static final String ALPHABET =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
final CharSequence name;
final CharSequence value;
private HpackHeader(byte[] name, byte[] value) {
this.name = new AsciiString(name, false);
this.value = new AsciiString(value, false);
}
/**
* Creates a number of random headers with the given name/value lengths.
*/
static List<HpackHeader> createHeaders(int numHeaders, int nameLength, int valueLength,
boolean limitToAscii) {
List<HpackHeader> hpackHeaders = new ArrayList<HpackHeader>(numHeaders);
for (int i = 0; i < numHeaders; ++i) {
// Force always ascii for header names
byte[] name = randomBytes(new byte[nameLength], true);
byte[] value = randomBytes(new byte[valueLength], limitToAscii);
hpackHeaders.add(new HpackHeader(name, value));
}
return hpackHeaders;
}
private static byte[] randomBytes(byte[] bytes, boolean limitToAscii) {
Random r = new Random();
if (limitToAscii) {
for (int index = 0; index < bytes.length; ++index) {
int charIndex = r.nextInt(ALPHABET.length());
bytes[index] = (byte) ALPHABET.charAt(charIndex);
}
} else {
r.nextBytes(bytes);
}
return bytes;
}
}
Source
Frequently Asked Questions
What is the HpackHeader class?
HpackHeader is a class in the netty codebase, defined in microbench/src/main/java/io/netty/handler/codec/http2/HpackHeader.java.
Where is HpackHeader defined?
HpackHeader is defined in microbench/src/main/java/io/netty/handler/codec/http2/HpackHeader.java at line 44.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free