Package net.karmafiles.jbnode

Source Code of net.karmafiles.jbnode.ResponseEncoder

package net.karmafiles.jbnode;

import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelHandler;

/**
* Created by Ilya Brodotsky
* Date: 22.09.2010
* Time: 14:59:49
* <p/>
* All rights reserved.
* <p/>
* Contact me:
* email, jabber: ilya.brodotsky@gmail.com
* skype: ilya.brodotsky
*/

public class ResponseEncoder extends SimpleChannelHandler {
    @Override
    public void writeRequested(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
        if(!(e.getMessage() instanceof Response)) {
            throw new JBNodeException("'Response' object expected.");
        }

        Response response = (Response)e.getMessage();

        ChannelBuffer responseBuffer1 = ChannelBuffers.buffer(4 + 1);

        int resultLength = response.getData().length;
        responseBuffer1.writeInt(resultLength);

        byte resultByte = response.isError() ? (byte) '!' : (byte) '.';
        responseBuffer1.writeByte(resultByte);

        ChannelBuffer responseBuffer2 = ChannelBuffers.wrappedBuffer(response.getData());

        Channels.write(ctx, e.getFuture(), responseBuffer1);
        Channels.write(ctx, e.getFuture(), responseBuffer2);
    }
}
TOP

Related Classes of net.karmafiles.jbnode.ResponseEncoder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.