package com.example.mina.box.rbm3000; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.codec.*; /** * @author 杜云山 * @date 20/07/07 */ public class Rbm3000CodecFactory implements ProtocolCodecFactory { @Override public ProtocolEncoder getEncoder(IoSession session) { return new AeroflexMessageEncoder(); } @Override public ProtocolDecoder getDecoder(IoSession session) { return new AeroflexMessageDecoder(); } static class AeroflexMessageEncoder implements ProtocolEncoder { @Override public void encode(IoSession session, Object message, ProtocolEncoderOutput out) { if (message instanceof IoBuffer) { session.write(message); } } @Override public void dispose(IoSession session) { } } static class AeroflexMessageDecoder implements ProtocolDecoder { // private final CharsetDecoder decoder = StandardCharsets.UTF_8.newDecoder(); @Override public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception { // String string = in.getString(decoder); // out.write(string); } @Override public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception { } @Override public void dispose(IoSession session) throws Exception { } } }