package org.atomnuke.syslog.parser;
import java.nio.charset.Charset;
import org.jboss.netty.buffer.ChannelBuffer;
import static org.jboss.netty.buffer.ChannelBuffers.*;
/**
*
* @author zinic
*/
public class Accumulator {
private ChannelBuffer frontBuffer, backBuffer;
public Accumulator() {
this(256);
}
public Accumulator(int initialSize) {
frontBuffer = dynamicBuffer(initialSize);
backBuffer = directBuffer(initialSize);
}
public void switchBuffers() {
final ChannelBuffer currentFront = frontBuffer;
frontBuffer = backBuffer;
backBuffer = currentFront;
}
public int size() {
return frontBuffer.readableBytes();
}
public void add(byte c) {
frontBuffer.writeByte(c);
}
public String getAll(Charset charset) {
final String value = frontBuffer.toString(charset);
frontBuffer.clear();
return value;
}
}