org.jboss.netty.handler.codec.protobuf
类 ProtobufDecoder

java.lang.Object
  继承者 org.jboss.netty.handler.codec.oneone.OneToOneDecoder
      继承者 org.jboss.netty.handler.codec.protobuf.ProtobufDecoder
所有已实现的接口:
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);
 }
 


嵌套类摘要
 
从接口 org.jboss.netty.channel.ChannelHandler 继承的嵌套类/接口
ChannelHandler.Sharable
 
构造方法摘要
ProtobufDecoder(com.google.protobuf.MessageLite prototype)
          Creates a new instance.
ProtobufDecoder(com.google.protobuf.MessageLite prototype, com.google.protobuf.ExtensionRegistry extensionRegistry)
           
 
方法摘要
 
从类 org.jboss.netty.handler.codec.oneone.OneToOneDecoder 继承的方法
handleUpstream
 
从类 java.lang.Object 继承的方法
equals, 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)