Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 package org.ros.internal.node.service;
00018
00019 import org.jboss.netty.buffer.ChannelBuffer;
00020 import org.jboss.netty.channel.Channel;
00021 import org.jboss.netty.channel.ChannelHandlerContext;
00022 import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
00023 import org.ros.internal.message.MessageBuffers;
00024
00028 public final class ServiceResponseEncoder extends OneToOneEncoder {
00029
00030 @Override
00031 protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception {
00032 if (msg instanceof ServiceServerResponse) {
00033 ServiceServerResponse response = (ServiceServerResponse) msg;
00034 ChannelBuffer buffer = MessageBuffers.dynamicBuffer();
00035 buffer.writeByte(response.getErrorCode());
00036 buffer.writeInt(response.getMessageLength());
00037 buffer.writeBytes(response.getMessage());
00038 return buffer;
00039 } else {
00040 return msg;
00041 }
00042 }
00043 }