📄 abstractdecoder.java
字号:
package com.frontMachine.codec;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.log4j.Logger;
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
import org.apache.mina.filter.codec.demux.MessageDecoder;
import org.apache.mina.filter.codec.demux.MessageDecoderResult;
public abstract class AbstractDecoder implements MessageDecoder
{
protected static Pattern pattern;
protected static Charset charset;
protected Matcher matcher;
protected Logger logger;
protected AbstractDecoder(){}
public abstract MessageDecoderResult decodable( IoSession session, ByteBuffer in );
protected abstract String decodeBody( IoSession session, ByteBuffer in );
public MessageDecoderResult decode( IoSession session, ByteBuffer in, ProtocolDecoderOutput out ) throws Exception
{
// Try to decode body
String m = decodeBody( session, in );
// 如果无法返回字符串,继续接收
if( m == null )
{
return MessageDecoderResult.NEED_DATA;
}
out.write(m);
return MessageDecoderResult.OK;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -