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 receivedChannelBuffer
into a Google Protocol BuffersMessage
andMessageLite
. Please note that this decoder must be used with a properFrameDecoder
such asProtobufVarint32FrameDecoder
orLengthFieldBasedFrameDecoder
if you are using a stream-based transport such as TCP/IP. A typical setup for TCP/IP would be:ChannelPipeline
pipeline = ...; // 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
());MyMessage
instead of aChannelBuffer
as a message:void messageReceived(
ChannelHandlerContext
ctx,MessageEvent
e) { 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.ExtensionRegistry
extensionRegistry
private static boolean
HAS_PARSER
private com.google.protobuf.MessageLite
prototype
-
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.Object
decode(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:OneToOneDecoder
Transforms the specified received message into another message and return the transformed message. Returnnull
if the received message is supposed to be discarded.- Specified by:
decode
in classOneToOneDecoder
- Throws:
java.lang.Exception
-
-