org.jboss.netty.handler.codec.protobuf
Class ProtobufEncoder
java.lang.Object
org.jboss.netty.handler.codec.oneone.OneToOneEncoder
org.jboss.netty.handler.codec.protobuf.ProtobufEncoder
- All Implemented Interfaces:
- ChannelDownstreamHandler, ChannelHandler
@ChannelHandler.Sharable
public class ProtobufEncoder
- extends OneToOneEncoder
Encodes the requested Google
Protocol Buffers Message
and MessageLite
into a
ChannelBuffer
. 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
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ProtobufEncoder
public ProtobufEncoder()
- Creates a new instance.
encode
protected Object encode(ChannelHandlerContext ctx,
Channel channel,
Object msg)
throws Exception
- Description copied from class:
OneToOneEncoder
- Transforms the specified message into another message and return the
transformed message. Note that you can not return
null
, unlike
you can in OneToOneDecoder.decode(ChannelHandlerContext, Channel, Object)
;
you must return something, at least ChannelBuffers.EMPTY_BUFFER
.
- Specified by:
encode
in class OneToOneEncoder
- Throws:
Exception
Copyright © 2008-2011 JBoss, a division of Red Hat, Inc.. All Rights Reserved.