/* * Blitz Trading */ package executionserver.mina.codecs; import java.io.ByteArrayOutputStream; import java.io.InputStream; import org.apache.mina.common.ByteBuffer; import org.apache.mina.common.IoSession; import org.apache.mina.filter.codec.CumulativeProtocolDecoder; import org.apache.mina.filter.codec.ProtocolDecoderOutput; /** * * @author Sylvio Azevedo <sylvio.azevedo@blitz-trading.com> */ public class StringDecoder extends CumulativeProtocolDecoder { ByteArrayOutputStream baos; public StringDecoder() { baos = new ByteArrayOutputStream(); } @Override protected boolean doDecode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) throws Exception { InputStream is = in.asInputStream(); byte[] buffer = new byte[4]; int read = is.read(buffer); if(buffer[0] == '\r' || buffer[0] == '\n') { out.write(baos.toString()); baos.reset(); return true; } baos.write(buffer, 0, read); return false; } }