package com.chamago.bison.codec.netty;
import com.chamago.bison.BisonContext;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.socket.SocketChannel;
/**
* Created by pengrongxin on 2017/1/15.
*/
public class BisonChannelPipleFactory extends ChannelInitializer<SocketChannel> {
private static final int MAX_FRAME_LENGTH = 4* 1024 * 1024;
private static final int LENGTH_FIELD_OFFSET = 0;
private static final int LENGTH_FIELD_LENGTH = 4;
private static final int LENGTH_ADJUSTMENT = 0;
private static final int INITIAL_BYTES_TO_STRIP = 4;
private BisonContext bisonContext;
public BisonChannelPipleFactory(BisonContext bisonContext){
this.bisonContext = bisonContext;
}
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast("frameDecoder",new BisonNettyDecoder(MAX_FRAME_LENGTH,LENGTH_FIELD_OFFSET,LENGTH_FIELD_LENGTH,LENGTH_ADJUSTMENT,INITIAL_BYTES_TO_STRIP,true));
ch.pipeline().addLast("frameEncoder",new BisonNettyEncoder());
ch.pipeline().addLast("userDecoder",new BisonClientNettyHandler(this.bisonContext));
}
}