package com.bumptech.glide.load.engine.bitmap_recycle;
/**
* Interface for an array pool that pools arrays of different types.
*/
public interface ArrayPool {
/**
* A standard size to use to increase hit rates when the required size isn't defined.
* Currently 64KB.
*/
int STANDARD_BUFFER_SIZE_BYTES = 64 * 1024;
/**
* Optionally adds the given array of the given type to the pool.
*
* <p>Arrays may be ignored, for example if the array is larger than the maximum size of the
* pool.
*/
<T> void put(T array, Class<T> arrayClass);
/**
* Returns a non-null array of the given type with a length >= to the given size.
*
* <p>If an array of the given size isn't in the pool, a new one will be allocated.
*
* <p>This class makes no guarantees about the contents of the returned array.
*/
<T> T get(int size, Class<T> arrayClass);
/**
* Clears all arrays from the pool.
*/
void clearMemory();
/**
* Trims the size to the appropriate level.
*
* @param level A trim specified in {@link android.content.ComponentCallbacks2}.
*/
void trimMemory(int level);
}