Class ProtobufDecoder
- java.lang.Object
-
- org.jboss.netty.handler.codec.oneone.OneToOneDecoder
-
- org.jboss.netty.handler.codec.protobuf.ProtobufDecoder
-
- All Implemented Interfaces:
ChannelHandler,ChannelUpstreamHandler
@Sharable public class ProtobufDecoder extends OneToOneDecoder
Decodes a receivedChannelBufferinto a Google Protocol BuffersMessageandMessageLite. Please note that this decoder must be used with a properFrameDecodersuch asProtobufVarint32FrameDecoderorLengthFieldBasedFrameDecoderif you are using a stream-based transport such as TCP/IP. A typical setup for TCP/IP would be:
and then you can use aChannelPipelinepipeline = ...; // Decoders pipeline.addLast("frameDecoder", newLengthFieldBasedFrameDecoder(1048576, 0, 4, 0, 4)); pipeline.addLast("protobufDecoder", newProtobufDecoder(MyMessage.getDefaultInstance())); // Encoder pipeline.addLast("frameEncoder", newLengthFieldPrepender(4)); pipeline.addLast("protobufEncoder", newProtobufEncoder());MyMessageinstead of aChannelBufferas a message:void messageReceived(
ChannelHandlerContextctx,MessageEvente) { MyMessage req = (MyMessage) e.getMessage(); MyMessage res = MyMessage.newBuilder().setText( "Did you say '" + req.getText() + "'?").build(); ch.write(res); }
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.jboss.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Field Summary
Fields Modifier and Type Field Description private com.google.protobuf.ExtensionRegistryextensionRegistryprivate static booleanHAS_PARSERprivate com.google.protobuf.MessageLiteprototype
-
Constructor Summary
Constructors Constructor Description ProtobufDecoder(com.google.protobuf.MessageLite prototype)Creates a new instance.ProtobufDecoder(com.google.protobuf.MessageLite prototype, com.google.protobuf.ExtensionRegistry extensionRegistry)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Objectdecode(ChannelHandlerContext ctx, Channel channel, java.lang.Object msg)Transforms the specified received message into another message and return the transformed message.-
Methods inherited from class org.jboss.netty.handler.codec.oneone.OneToOneDecoder
handleUpstream
-
-
-
-
Method Detail
-
decode
protected java.lang.Object decode(ChannelHandlerContext ctx, Channel channel, java.lang.Object msg) throws java.lang.Exception
Description copied from class:OneToOneDecoderTransforms the specified received message into another message and return the transformed message. Returnnullif the received message is supposed to be discarded.- Specified by:
decodein classOneToOneDecoder- Throws:
java.lang.Exception
-
-