eaglercraft-1.8/sources/main/java/com/carrotsearch/hppc/ArraySizingStrategy.java
2025-01-19 15:44:28 -08:00

28 lines
1.1 KiB
Java

/*
* HPPC
*
* Copyright (C) 2010-2024 Carrot Search s.c. and contributors
* All rights reserved.
*
* Refer to the full license file "LICENSE.txt":
* https://github.com/carrotsearch/hppc/blob/master/LICENSE.txt
*/
package com.carrotsearch.hppc;
/** Resizing (growth) strategy for array-backed buffers. */
public interface ArraySizingStrategy extends Accountable {
/**
* @param currentBufferLength Current size of the array (buffer). This number should comply with
* the strategy's policies (it is a result of initial rounding or further growCalls). It can
* also be zero, indicating the growth from an empty buffer.
* @param elementsCount Number of elements stored in the buffer.
* @param expectedAdditions Expected number of additions (resize hint).
* @return Must return a new size at least as big as to hold <code>
* elementsCount + expectedAdditions</code>.
* @throws BufferAllocationException If the sizing strategy cannot grow the buffer (for example
* due to constraints or memory limits).
*/
int grow(int currentBufferLength, int elementsCount, int expectedAdditions)
throws BufferAllocationException;
}