package com.chamago.bison.codec;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
import com.chamago.bison.util.ByteUtil;
/**
*
* @author Gavin.peng
*
* 2013-10-27 下午04:08:23
× bison-client
*/
public class BisonProtocolDecoder extends CumulativeProtocolDecoder
{
protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out)
throws Exception
{
if (!in.prefixedDataAvailable(4, 4194304)) {
return false;
}
int len = in.getInt();
byte[] tmp = new byte[len];
in.get(tmp);
if(len==12){
int msgID = ByteUtil.readInt(tmp, 0);
int key = ByteUtil.readInt(tmp, 4);
int ret = ByteUtil.readInt(tmp, 8);
System.out.println("msgID:"+msgID+",key:"+key+" ,ret:"+ret+"");
}
out.write(tmp);
return true;
}
}