png-encoder/src/org/atriasoft/pngencoder/PngEncoderDeflaterBufferPool.java

36 lines
811 B
Java

package org.atriasoft.pngencoder;
import java.util.LinkedList;
import java.util.Queue;
class PngEncoderDeflaterBufferPool {
private final int bufferMaxLength;
protected final Queue<PngEncoderDeflaterBuffer> buffers;
PngEncoderDeflaterBufferPool(final int bufferMaxLength) {
this.bufferMaxLength = bufferMaxLength;
this.buffers = new LinkedList<>();
}
PngEncoderDeflaterBuffer borrow() {
PngEncoderDeflaterBuffer buffer = this.buffers.poll();
if (buffer == null) {
buffer = new PngEncoderDeflaterBuffer(this, this.bufferMaxLength);
}
return buffer;
}
public int getBufferMaxLength() {
return this.bufferMaxLength;
}
void giveBack(final PngEncoderDeflaterBuffer buffer) {
buffer.length = 0;
this.buffers.offer(buffer);
}
int size() {
return this.buffers.size();
}
}