package io.craft.atom.nio;
import io.craft.atom.io.AbstractIoHandler;
import io.craft.atom.io.Channel;
import lombok.Getter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author mindwind
* @version 1.0, 2011-12-19
*/
public class NioConnectorHandler extends AbstractIoHandler {
private static final Logger LOG = LoggerFactory.getLogger(NioConnectorHandler.class);
private static final byte LF = 10 ;
@Getter private StringBuilder buf = new StringBuilder();
@Getter private String rcv = null ;
@Override
public void channelRead(Channel<byte[]> channel, byte[] bytes) {
LOG.debug("[CRAFT-ATOM-NIO] Channel read bytes size={}", bytes.length);
for (byte b : bytes) {
buf.append((char) b);
}
if (bytes[bytes.length - 1] == LF) {
rcv = buf.toString();
byte[] echoBytes = buf.toString().getBytes();
LOG.debug("[CRAFT-ATOM-NIO] Echo received bytes size={} \n", echoBytes.length);
buf = new StringBuilder();
synchronized(channel) {
channel.notifyAll();
}
}
}
}