IntPriorityQueue Class — netty Architecture
Architecture documentation for the IntPriorityQueue class in IntPriorityQueue.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD ad6253f6_6b27_9dab_4272_9c668d433d62["IntPriorityQueue"] c68be9a0_b4b2_69a0_567a_a77c4224ea23["IntPriorityQueue.java"] ad6253f6_6b27_9dab_4272_9c668d433d62 -->|defined in| c68be9a0_b4b2_69a0_567a_a77c4224ea23 b7ae3c0f_bbce_7e04_af93_b881ca553ef7["offer()"] ad6253f6_6b27_9dab_4272_9c668d433d62 -->|method| b7ae3c0f_bbce_7e04_af93_b881ca553ef7 f2b8e419_4f1e_c5f8_1707_8a1ce3cbfc34["remove()"] ad6253f6_6b27_9dab_4272_9c668d433d62 -->|method| f2b8e419_4f1e_c5f8_1707_8a1ce3cbfc34 36c402fd_2250_da8a_c7b8_d456e263b6ce["peek()"] ad6253f6_6b27_9dab_4272_9c668d433d62 -->|method| 36c402fd_2250_da8a_c7b8_d456e263b6ce 631c7a78_a97a_92c7_9c70_ba1d86ff15bc["poll()"] ad6253f6_6b27_9dab_4272_9c668d433d62 -->|method| 631c7a78_a97a_92c7_9c70_ba1d86ff15bc a06ed807_3bdc_9294_1800_a8192fba38b5["isEmpty()"] ad6253f6_6b27_9dab_4272_9c668d433d62 -->|method| a06ed807_3bdc_9294_1800_a8192fba38b5 f939e54c_fd1f_0380_742b_3ea857d85fdc["lift()"] ad6253f6_6b27_9dab_4272_9c668d433d62 -->|method| f939e54c_fd1f_0380_742b_3ea857d85fdc 38079c4c_340d_7168_bf66_3429ac5a58fd["sink()"] ad6253f6_6b27_9dab_4272_9c668d433d62 -->|method| 38079c4c_340d_7168_bf66_3429ac5a58fd f8d6bc00_3a80_475b_7977_901a2046e948["subord()"] ad6253f6_6b27_9dab_4272_9c668d433d62 -->|method| f8d6bc00_3a80_475b_7977_901a2046e948 af0a88f6_ffad_b27a_c956_98c92ebd697a["swap()"] ad6253f6_6b27_9dab_4272_9c668d433d62 -->|method| af0a88f6_ffad_b27a_c956_98c92ebd697a
Relationship Graph
Source Code
buffer/src/main/java/io/netty/buffer/IntPriorityQueue.java lines 24–107
final class IntPriorityQueue {
public static final int NO_VALUE = -1;
private int[] array = new int[9];
private int size;
public void offer(int handle) {
if (handle == NO_VALUE) {
throw new IllegalArgumentException("The NO_VALUE (" + NO_VALUE + ") cannot be added to the queue.");
}
size++;
if (size == array.length) {
// Grow queue capacity.
array = Arrays.copyOf(array, 1 + (array.length - 1) * 2);
}
array[size] = handle;
lift(size);
}
public void remove(int value) {
for (int i = 1; i <= size; i++) {
if (array[i] == value) {
array[i] = array[size--];
lift(i);
sink(i);
return;
}
}
}
public int peek() {
if (size == 0) {
return NO_VALUE;
}
return array[1];
}
public int poll() {
if (size == 0) {
return NO_VALUE;
}
int val = array[1];
array[1] = array[size];
array[size] = 0;
size--;
sink(1);
return val;
}
public boolean isEmpty() {
return size == 0;
}
private void lift(int index) {
int parentIndex;
while (index > 1 && subord(parentIndex = index >> 1, index)) {
swap(index, parentIndex);
index = parentIndex;
}
}
private void sink(int index) {
int child;
while ((child = index << 1) <= size) {
if (child < size && subord(child, child + 1)) {
child++;
}
if (!subord(index, child)) {
break;
}
swap(index, child);
index = child;
}
}
private boolean subord(int a, int b) {
return array[a] > array[b];
}
private void swap(int a, int b) {
int value = array[a];
array[a] = array[b];
Source
Frequently Asked Questions
What is the IntPriorityQueue class?
IntPriorityQueue is a class in the netty codebase, defined in buffer/src/main/java/io/netty/buffer/IntPriorityQueue.java.
Where is IntPriorityQueue defined?
IntPriorityQueue is defined in buffer/src/main/java/io/netty/buffer/IntPriorityQueue.java at line 24.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free