DefaultFutureListeners Class — netty Architecture
Architecture documentation for the DefaultFutureListeners class in DefaultFutureListeners.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 9e984bde_ac45_aa5a_17a8_2160de9ec1cd["DefaultFutureListeners"] 86a70833_d7f5_001c_c1b7_a9215987fdf8["DefaultFutureListeners.java"] 9e984bde_ac45_aa5a_17a8_2160de9ec1cd -->|defined in| 86a70833_d7f5_001c_c1b7_a9215987fdf8 96406c83_9b24_9669_2211_fd5b254508a0["DefaultFutureListeners()"] 9e984bde_ac45_aa5a_17a8_2160de9ec1cd -->|method| 96406c83_9b24_9669_2211_fd5b254508a0 86f06b47_d086_645c_6bf2_e31bd17b3278["add()"] 9e984bde_ac45_aa5a_17a8_2160de9ec1cd -->|method| 86f06b47_d086_645c_6bf2_e31bd17b3278 e5496230_25d2_39f2_47bc_cc60f74ff55a["remove()"] 9e984bde_ac45_aa5a_17a8_2160de9ec1cd -->|method| e5496230_25d2_39f2_47bc_cc60f74ff55a 194dcf11_015a_6981_16ec_26502f8e9adb["listeners()"] 9e984bde_ac45_aa5a_17a8_2160de9ec1cd -->|method| 194dcf11_015a_6981_16ec_26502f8e9adb 6d41ccbc_6e4b_094e_5702_6ab4e51c8b3e["size()"] 9e984bde_ac45_aa5a_17a8_2160de9ec1cd -->|method| 6d41ccbc_6e4b_094e_5702_6ab4e51c8b3e 2970d059_0767_7015_40e4_94dd20b9d7c3["progressiveSize()"] 9e984bde_ac45_aa5a_17a8_2160de9ec1cd -->|method| 2970d059_0767_7015_40e4_94dd20b9d7c3
Relationship Graph
Source Code
common/src/main/java/io/netty/util/concurrent/DefaultFutureListeners.java lines 20–86
final class DefaultFutureListeners {
private GenericFutureListener<? extends Future<?>>[] listeners;
private int size;
private int progressiveSize; // the number of progressive listeners
@SuppressWarnings("unchecked")
DefaultFutureListeners(
GenericFutureListener<? extends Future<?>> first, GenericFutureListener<? extends Future<?>> second) {
listeners = new GenericFutureListener[2];
listeners[0] = first;
listeners[1] = second;
size = 2;
if (first instanceof GenericProgressiveFutureListener) {
progressiveSize ++;
}
if (second instanceof GenericProgressiveFutureListener) {
progressiveSize ++;
}
}
public void add(GenericFutureListener<? extends Future<?>> l) {
GenericFutureListener<? extends Future<?>>[] listeners = this.listeners;
final int size = this.size;
if (size == listeners.length) {
this.listeners = listeners = Arrays.copyOf(listeners, size << 1);
}
listeners[size] = l;
this.size = size + 1;
if (l instanceof GenericProgressiveFutureListener) {
progressiveSize ++;
}
}
public void remove(GenericFutureListener<? extends Future<?>> l) {
final GenericFutureListener<? extends Future<?>>[] listeners = this.listeners;
int size = this.size;
for (int i = 0; i < size; i ++) {
if (listeners[i] == l) {
int listenersToMove = size - i - 1;
if (listenersToMove > 0) {
System.arraycopy(listeners, i + 1, listeners, i, listenersToMove);
}
listeners[-- size] = null;
this.size = size;
if (l instanceof GenericProgressiveFutureListener) {
progressiveSize --;
}
return;
}
}
}
public GenericFutureListener<? extends Future<?>>[] listeners() {
return listeners;
}
public int size() {
return size;
}
public int progressiveSize() {
return progressiveSize;
}
}
Source
Frequently Asked Questions
What is the DefaultFutureListeners class?
DefaultFutureListeners is a class in the netty codebase, defined in common/src/main/java/io/netty/util/concurrent/DefaultFutureListeners.java.
Where is DefaultFutureListeners defined?
DefaultFutureListeners is defined in common/src/main/java/io/netty/util/concurrent/DefaultFutureListeners.java at line 20.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free