@UnstableApi @ChannelHandler.Sharable public class DatagramDnsQueryEncoder extends MessageToMessageEncoder<AddressedEnvelope<DnsQuery,java.net.InetSocketAddress>>
ChannelHandler.Sharable
Modifier and Type | Field and Description |
---|---|
private DnsRecordEncoder |
recordEncoder |
Constructor and Description |
---|
DatagramDnsQueryEncoder()
Creates a new encoder with the default record encoder.
|
DatagramDnsQueryEncoder(DnsRecordEncoder recordEncoder)
Creates a new encoder with the specified
recordEncoder . |
Modifier and Type | Method and Description |
---|---|
protected ByteBuf |
allocateBuffer(ChannelHandlerContext ctx,
AddressedEnvelope<DnsQuery,java.net.InetSocketAddress> msg)
Allocate a
ByteBuf which will be used for constructing a datagram packet. |
protected void |
encode(ChannelHandlerContext ctx,
AddressedEnvelope<DnsQuery,java.net.InetSocketAddress> in,
java.util.List<java.lang.Object> out)
Encode from one message to an other.
|
private static void |
encodeHeader(DnsQuery query,
ByteBuf buf)
Encodes the header that is always 12 bytes long.
|
private void |
encodeQuestions(DnsQuery query,
ByteBuf buf) |
private void |
encodeRecords(DnsQuery query,
DnsSection section,
ByteBuf buf) |
acceptOutboundMessage, write
bind, close, connect, deregister, disconnect, flush, read
ensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
exceptionCaught, handlerAdded, handlerRemoved
private final DnsRecordEncoder recordEncoder
public DatagramDnsQueryEncoder()
public DatagramDnsQueryEncoder(DnsRecordEncoder recordEncoder)
recordEncoder
.protected void encode(ChannelHandlerContext ctx, AddressedEnvelope<DnsQuery,java.net.InetSocketAddress> in, java.util.List<java.lang.Object> out) throws java.lang.Exception
MessageToMessageEncoder
encode
in class MessageToMessageEncoder<AddressedEnvelope<DnsQuery,java.net.InetSocketAddress>>
ctx
- the ChannelHandlerContext
which this MessageToMessageEncoder
belongs toin
- the message to encode to an other oneout
- the List
into which the encoded msg should be added
needs to do some kind of aggregationjava.lang.Exception
- is thrown if an error occursprotected ByteBuf allocateBuffer(ChannelHandlerContext ctx, AddressedEnvelope<DnsQuery,java.net.InetSocketAddress> msg) throws java.lang.Exception
ByteBuf
which will be used for constructing a datagram packet.
Sub-classes may override this method to return a ByteBuf
with a perfect matching initial capacity.java.lang.Exception
private static void encodeHeader(DnsQuery query, ByteBuf buf)
query
- the query header being encodedbuf
- the buffer the encoded data should be written toprivate void encodeQuestions(DnsQuery query, ByteBuf buf) throws java.lang.Exception
java.lang.Exception
private void encodeRecords(DnsQuery query, DnsSection section, ByteBuf buf) throws java.lang.Exception
java.lang.Exception