package com.dy.common.mw.channel.tcp;
|
|
import org.apache.mina.filter.codec.ProtocolCodecFactory;
|
import org.apache.mina.filter.codec.ProtocolEncoder;
|
import org.apache.mina.filter.codec.ProtocolDecoder;
|
import org.apache.mina.core.session.IoSession;
|
|
public class DataCodecFactory implements ProtocolCodecFactory {
|
|
private TcpUnitAdapter adapter ;
|
private boolean stop = false ;//为true时,停止TCP服务,并把已经TCP连接断连接
|
|
public DataCodecFactory(TcpUnitAdapter adapter) {
|
this.adapter = adapter ;
|
}
|
|
public void stop(){
|
stop = true ;
|
}
|
|
public void recover(){
|
this.stop = false ;
|
}
|
|
|
public ProtocolEncoder getEncoder(IoSession ioSession) {
|
if(stop){
|
ioSession.closeNow() ;
|
}
|
return new DataEncoder();
|
}
|
|
public ProtocolDecoder getDecoder(IoSession ioSession) {
|
if(stop){
|
ioSession.closeNow() ;
|
}
|
return new DataDecoder(adapter.newPrefixedDataAvailableHandle());
|
}
|
}
|