package org.atriasoft.pngencoder; import java.util.LinkedList; import java.util.Queue; class PngEncoderDeflaterBufferPool { private final int bufferMaxLength; protected final Queue 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(); } }