mirror of
http://git.eaglercraft.rip/eaglercraft/eaglercraft-1.8.git
synced 2025-04-30 02:01:59 -05:00
28 lines
1.1 KiB
Java
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;
|
|
}
|