Package io.netty.handler.codec.string
Class LineEncoder
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelOutboundHandlerAdapter
-
- io.netty.handler.codec.MessageToMessageEncoder<java.lang.CharSequence>
-
- io.netty.handler.codec.string.LineEncoder
-
- All Implemented Interfaces:
ChannelHandler,ChannelOutboundHandler
@Sharable public class LineEncoder extends MessageToMessageEncoder<java.lang.CharSequence>
Apply a line separator to the requestedStringand encode it into aByteBuf. A typical setup for a text-based line protocol in a TCP/IP socket would be:
and then you can use aChannelPipelinepipeline = ...; // Decoders pipeline.addLast("frameDecoder", newLineBasedFrameDecoder(80)); pipeline.addLast("stringDecoder", newStringDecoder(CharsetUtil.UTF_8)); // Encoder pipeline.addLast("lineEncoder", newLineEncoder(LineSeparator.UNIX, CharsetUtil.UTF_8));Stringinstead of aByteBufas a message:void channelRead(
ChannelHandlerContextctx,Stringmsg) { ch.write("Did you say '" + msg + "'?"); }
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Constructor Summary
Constructors Constructor Description LineEncoder()Creates a new instance with the current system line separator and UTF-8 charset encoding.LineEncoder(LineSeparator lineSeparator)Creates a new instance with the specified line separator and UTF-8 charset encoding.LineEncoder(LineSeparator lineSeparator, java.nio.charset.Charset charset)Creates a new instance with the specified line separator and character set.LineEncoder(java.nio.charset.Charset charset)Creates a new instance with the specified character set.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidencode(ChannelHandlerContext ctx, java.lang.CharSequence msg, java.util.List<java.lang.Object> out)Encode from one message to an other.-
Methods inherited from class io.netty.handler.codec.MessageToMessageEncoder
acceptOutboundMessage, write
-
Methods inherited from class io.netty.channel.ChannelOutboundHandlerAdapter
bind, close, connect, deregister, disconnect, flush, read
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.netty.channel.ChannelHandler
exceptionCaught, handlerAdded, handlerRemoved
-
-
-
-
Constructor Detail
-
LineEncoder
public LineEncoder()
Creates a new instance with the current system line separator and UTF-8 charset encoding.
-
LineEncoder
public LineEncoder(LineSeparator lineSeparator)
Creates a new instance with the specified line separator and UTF-8 charset encoding.
-
LineEncoder
public LineEncoder(java.nio.charset.Charset charset)
Creates a new instance with the specified character set.
-
LineEncoder
public LineEncoder(LineSeparator lineSeparator, java.nio.charset.Charset charset)
Creates a new instance with the specified line separator and character set.
-
-
Method Detail
-
encode
protected void encode(ChannelHandlerContext ctx, java.lang.CharSequence msg, java.util.List<java.lang.Object> out) throws java.lang.Exception
Description copied from class:MessageToMessageEncoderEncode from one message to an other. This method will be called for each written message that can be handled by this encoder.- Specified by:
encodein classMessageToMessageEncoder<java.lang.CharSequence>- Parameters:
ctx- theChannelHandlerContextwhich thisMessageToMessageEncoderbelongs tomsg- the message to encode to an other oneout- theListinto which the encoded msg should be added needs to do some kind of aggregation- Throws:
java.lang.Exception- is thrown if an error occurs
-
-