org.jboss.netty.handler.codec.protobuf
Class ProtobufDecoder
java.lang.Object
org.jboss.netty.handler.codec.oneone.OneToOneDecoder
org.jboss.netty.handler.codec.protobuf.ProtobufDecoder
- All Implemented Interfaces:
- ChannelHandler, ChannelUpstreamHandler
@ChannelHandler.Sharable
public class ProtobufDecoder
- extends OneToOneDecoder
Decodes a received ChannelBuffer into a
Google Protocol Buffers
Message and MessageLite. Please note that this decoder must
be used with a proper FrameDecoder such as ProtobufVarint32FrameDecoder
or LengthFieldBasedFrameDecoder 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",
new LengthFieldBasedFrameDecoder(1048576, 0, 4, 0, 4));
pipeline.addLast("protobufDecoder",
new ProtobufDecoder(MyMessage.getDefaultInstance()));
// Encoder
pipeline.addLast("frameEncoder", new LengthFieldPrepender(4));
pipeline.addLast("protobufEncoder", new ProtobufEncoder());
and then you can use a MyMessage instead of a ChannelBuffer
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);
}
- Version:
- $Rev:231 $, $Date:2008-06-12 16:44:50 +0900 (목, 12 6월 2008) $
- Author:
- The Netty Project, Trustin Lee
|
Constructor Summary |
ProtobufDecoder(com.google.protobuf.MessageLite prototype)
Creates a new instance. |
ProtobufDecoder(com.google.protobuf.MessageLite prototype,
com.google.protobuf.ExtensionRegistry extensionRegistry)
|
|
Method Summary |
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ProtobufDecoder
public ProtobufDecoder(com.google.protobuf.MessageLite prototype)
- Creates a new instance.
ProtobufDecoder
public ProtobufDecoder(com.google.protobuf.MessageLite prototype,
com.google.protobuf.ExtensionRegistry extensionRegistry)
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. Return
null if the received message
is supposed to be discarded.
- Specified by:
decode in class OneToOneDecoder
- Throws:
java.lang.Exception
Copyright © 2008-2011. All Rights Reserved.