org.jboss.netty.handler.codec.protobuf
Class ProtobufEncoder

java.lang.Object
  extended by org.jboss.netty.handler.codec.oneone.OneToOneEncoder
      extended by 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

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.jboss.netty.channel.ChannelHandler
ChannelHandler.Sharable
 
Constructor Summary
ProtobufEncoder()
          Creates a new instance.
 
Method Summary
protected  Object encode(ChannelHandlerContext ctx, Channel channel, Object msg)
          Transforms the specified message into another message and return the transformed message.
 
Methods inherited from class org.jboss.netty.handler.codec.oneone.OneToOneEncoder
handleDownstream
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProtobufEncoder

public ProtobufEncoder()
Creates a new instance.

Method Detail

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.