- java.lang.Object
-
- io.netty5.channel.ChannelHandlerAdapter
-
- io.netty5.handler.codec.MessageToMessageEncoder<AddressedEnvelope<DnsQuery,InetSocketAddress>>
-
- io.netty5.handler.codec.dns.DatagramDnsQueryEncoder
-
- All Implemented Interfaces:
ChannelHandler
@UnstableApi public class DatagramDnsQueryEncoder extends MessageToMessageEncoder<AddressedEnvelope<DnsQuery,InetSocketAddress>>
-
-
Constructor Summary
Constructors Constructor Description DatagramDnsQueryEncoder()
Creates a new encoder with the default record encoder.DatagramDnsQueryEncoder(DnsRecordEncoder recordEncoder)
Creates a new encoder with the specifiedrecordEncoder
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Buffer
allocateBuffer(ChannelHandlerContext ctx, AddressedEnvelope<DnsQuery,InetSocketAddress> msg)
Allocate aBuffer
which will be used for constructing a datagram packet.protected void
encode(ChannelHandlerContext ctx, AddressedEnvelope<DnsQuery,InetSocketAddress> in, List<Object> out)
Encode from one message to another.boolean
isSharable()
Returnstrue
if this handler is sharable and thus can be added to more than oneChannelPipeline
.-
Methods inherited from class io.netty5.handler.codec.MessageToMessageEncoder
acceptOutboundMessage, encodeAndClose, write
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.netty5.channel.ChannelHandler
bind, channelActive, channelExceptionCaught, channelInactive, channelInboundEvent, channelRead, channelReadComplete, channelRegistered, channelShutdown, channelUnregistered, channelWritabilityChanged, close, connect, deregister, disconnect, flush, handlerAdded, handlerRemoved, pendingOutboundBytes, read, register, sendOutboundEvent, shutdown
-
-
-
-
Constructor Detail
-
DatagramDnsQueryEncoder
public DatagramDnsQueryEncoder()
Creates a new encoder with the default record encoder.
-
DatagramDnsQueryEncoder
public DatagramDnsQueryEncoder(DnsRecordEncoder recordEncoder)
Creates a new encoder with the specifiedrecordEncoder
.
-
-
Method Detail
-
isSharable
public boolean isSharable()
Description copied from interface:ChannelHandler
Returnstrue
if this handler is sharable and thus can be added to more than oneChannelPipeline
. By default, this method returnsfalse
. If this method returnsfalse
, you have to create a new handler instance every time you add it to a pipeline because it has unshared state such as member variables.
-
encode
protected void encode(ChannelHandlerContext ctx, AddressedEnvelope<DnsQuery,InetSocketAddress> in, List<Object> out) throws Exception
Description copied from class:MessageToMessageEncoder
Encode from one message to another. This method will be called for each written message that can be handled by this encoder.The message will be disposed of after this call.
Subclasses that wish to sometimes pass messages through, should instead override the
MessageToMessageEncoder.encodeAndClose(ChannelHandlerContext, Object, List)
method.- Overrides:
encode
in classMessageToMessageEncoder<AddressedEnvelope<DnsQuery,InetSocketAddress>>
- Parameters:
ctx
- theChannelHandlerContext
which thisMessageToMessageEncoder
belongs to.in
- the message to encode to another one.out
- theList
into which produced output messages should be added.- Throws:
Exception
- is thrown if an error occurs.
-
allocateBuffer
protected Buffer allocateBuffer(ChannelHandlerContext ctx, AddressedEnvelope<DnsQuery,InetSocketAddress> msg) throws Exception
Allocate aBuffer
which will be used for constructing a datagram packet. Sub-classes may override this method to return aBuffer
with a perfect matching initial capacity.- Throws:
Exception
-
-