public void encode(HttpMessage message, OutputStream out) throws IOException { String value = getMethod(message); if (value != null) { encoder.encodeHeader(out, Http2Header.METHOD.getName().getBytes(US_ASCII_CHARSET), value.getBytes(US_ASCII_CHARSET), encoder.encodeHeader(out, Http2Header.PATH.getName().getBytes(US_ASCII_CHARSET), value.getBytes(US_ASCII_CHARSET), encoder.encodeHeader(out, Http2Header.STATUS.getName().getBytes(US_ASCII_CHARSET), Integer.toString(((HttpResponse)message).getStatus().code()).getBytes(US_ASCII_CHARSET), encoder.encodeHeader(out, name.getBytes(US_ASCII_CHARSET), message.getHeaders().get(name).getBytes(US_ASCII_CHARSET),
private byte[] getSerializedHeaders(List<Header> headers, boolean sensitive) throws IOException { Encoder encoder = new Encoder(4096); ByteArrayOutputStream outputStream = size.newOutputStream(); for (int i = 0; i < headers.size(); ++i) { Header header = headers.get(i); encoder.encodeHeader(outputStream, header.name, header.value, sensitive); } return outputStream.toByteArray(); } }
@Benchmark @BenchmarkMode(Mode.Throughput) public void encode(Blackhole bh) throws IOException { Encoder encoder = new Encoder(maxTableSize); outputStream.reset(); if (duplicates) { // If duplicates is set, re-add the same header each time. Header header = headers.get(0); for (int i = 0; i < headers.size(); ++i) { encoder.encodeHeader(outputStream, header.name, header.value, sensitive); } } else { for (int i = 0; i < headers.size(); ++i) { Header header = headers.get(i); encoder.encodeHeader(outputStream, header.name, header.value, sensitive); } } bh.consume(outputStream); } }
for (String crumb : value.split(";")) { byte[] valueBytes = crumb.trim().getBytes(StandardCharsets.UTF_8); encoder.encodeHeader(out, COOKIE, valueBytes, true); encoder.encodeHeader(out, nameBytes, EMPTY, false); } else { for (String value : values) { byte[] valueBytes = value.getBytes(StandardCharsets.UTF_8); encoder.encodeHeader(out, nameBytes, valueBytes, false);