liurunyu
7 天以前 4f99f59668c9160ca60958b7347944def26f2228
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/DataCodecFactory.java
New file
@@ -0,0 +1,39 @@
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());
    }
}