36 lines
811 B
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();
|
|
}
|
|
}
|