package ibis.ipl.impl.stacking.lrmc.util; import java.util.LinkedList; public class ByteArrayCache { private static final int DEFAULT_MAX = 100; private LinkedList<byte[]> cache = new LinkedList<byte[]>(); private final int maxSize; private final int arraySize; public ByteArrayCache(int arraySize) { this(arraySize, DEFAULT_MAX); } public ByteArrayCache(int arraySize, int maxArrays) { this.maxSize = maxArrays; this.arraySize = arraySize; } public synchronized void put(byte[] array) { if (cache.size() < maxSize && array.length == arraySize) { cache.addLast(array); } } public synchronized byte[] get(int len) { if (len <= arraySize && cache.size() > 0) { return cache.removeLast(); } return new byte[len]; } }