TcpDnsQueryEncoder Class — netty Architecture
Architecture documentation for the TcpDnsQueryEncoder class in TcpDnsQueryEncoder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD ed85728f_8833_deba_ce65_210c2d56b62e["TcpDnsQueryEncoder"] 5f3c12ef_4a76_927a_2d0c_2f0ab88991ae["TcpDnsQueryEncoder.java"] ed85728f_8833_deba_ce65_210c2d56b62e -->|defined in| 5f3c12ef_4a76_927a_2d0c_2f0ab88991ae cc2ed799_7650_a366_c34c_2705bb47afa7["TcpDnsQueryEncoder()"] ed85728f_8833_deba_ce65_210c2d56b62e -->|method| cc2ed799_7650_a366_c34c_2705bb47afa7 f35dbdea_2457_03c8_04da_f80ccfc62524["encode()"] ed85728f_8833_deba_ce65_210c2d56b62e -->|method| f35dbdea_2457_03c8_04da_f80ccfc62524 5ffd82a4_c055_a33c_82f0_3ec8dbdf3faa["ByteBuf()"] ed85728f_8833_deba_ce65_210c2d56b62e -->|method| 5ffd82a4_c055_a33c_82f0_3ec8dbdf3faa
Relationship Graph
Source Code
codec-dns/src/main/java/io/netty/handler/codec/dns/TcpDnsQueryEncoder.java lines 23–63
@ChannelHandler.Sharable
public final class TcpDnsQueryEncoder extends MessageToByteEncoder<DnsQuery> {
private final DnsQueryEncoder encoder;
/**
* Creates a new encoder with {@linkplain DnsRecordEncoder#DEFAULT the default record encoder}.
*/
public TcpDnsQueryEncoder() {
this(DnsRecordEncoder.DEFAULT);
}
/**
* Creates a new encoder with the specified {@code recordEncoder}.
*/
public TcpDnsQueryEncoder(DnsRecordEncoder recordEncoder) {
super(DnsQuery.class);
this.encoder = new DnsQueryEncoder(recordEncoder);
}
@Override
protected void encode(ChannelHandlerContext ctx, DnsQuery msg, ByteBuf out) throws Exception {
// Length is two octets as defined by RFC-7766
// See https://tools.ietf.org/html/rfc7766#section-8
out.writerIndex(out.writerIndex() + 2);
encoder.encode(msg, out);
// Now fill in the correct length based on the amount of data that we wrote the ByteBuf.
out.setShort(0, out.readableBytes() - 2);
}
@Override
protected ByteBuf allocateBuffer(ChannelHandlerContext ctx, @SuppressWarnings("unused") DnsQuery msg,
boolean preferDirect) {
if (preferDirect) {
return ctx.alloc().ioBuffer(1024);
} else {
return ctx.alloc().heapBuffer(1024);
}
}
}
Source
Frequently Asked Questions
What is the TcpDnsQueryEncoder class?
TcpDnsQueryEncoder is a class in the netty codebase, defined in codec-dns/src/main/java/io/netty/handler/codec/dns/TcpDnsQueryEncoder.java.
Where is TcpDnsQueryEncoder defined?
TcpDnsQueryEncoder is defined in codec-dns/src/main/java/io/netty/handler/codec/dns/TcpDnsQueryEncoder.java at line 23.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free