CodecOutputLists Class — netty Architecture
Architecture documentation for the CodecOutputLists class in CodecOutputList.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD aac48680_9d95_cb9c_d02a_97c3be1d915d["CodecOutputLists"] 71209b4a_e4d1_da5a_9c59_6396227fc322["CodecOutputList.java"] aac48680_9d95_cb9c_d02a_97c3be1d915d -->|defined in| 71209b4a_e4d1_da5a_9c59_6396227fc322 ae8221a7_6657_2dbe_c193_b55576e6aea5["CodecOutputLists()"] aac48680_9d95_cb9c_d02a_97c3be1d915d -->|method| ae8221a7_6657_2dbe_c193_b55576e6aea5 a94dd608_4dde_39a1_0b26_ef5628449d49["CodecOutputList()"] aac48680_9d95_cb9c_d02a_97c3be1d915d -->|method| a94dd608_4dde_39a1_0b26_ef5628449d49 b0ad754a_1475_ab92_ff88_0d340ec0bdef["recycle()"] aac48680_9d95_cb9c_d02a_97c3be1d915d -->|method| b0ad754a_1475_ab92_ff88_0d340ec0bdef
Relationship Graph
Source Code
codec-base/src/main/java/io/netty/handler/codec/CodecOutputList.java lines 51–91
private static final class CodecOutputLists implements CodecOutputListRecycler {
private final CodecOutputList[] elements;
private final int mask;
private int currentIdx;
private int count;
CodecOutputLists(int numElements) {
elements = new CodecOutputList[MathUtil.safeFindNextPositivePowerOfTwo(numElements)];
for (int i = 0; i < elements.length; ++i) {
// Size of 16 should be good enough for the majority of all users as an initial capacity.
elements[i] = new CodecOutputList(this, 16);
}
count = elements.length;
currentIdx = elements.length;
mask = elements.length - 1;
}
public CodecOutputList getOrCreate() {
if (count == 0) {
// Return a new CodecOutputList which will not be cached. We use a size of 4 to keep the overhead
// low.
return new CodecOutputList(NOOP_RECYCLER, 4);
}
--count;
int idx = (currentIdx - 1) & mask;
CodecOutputList list = elements[idx];
currentIdx = idx;
return list;
}
@Override
public void recycle(CodecOutputList codecOutputList) {
int idx = currentIdx;
elements[idx] = codecOutputList;
currentIdx = (idx + 1) & mask;
++count;
assert count <= elements.length;
}
}
Source
Frequently Asked Questions
What is the CodecOutputLists class?
CodecOutputLists is a class in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/CodecOutputList.java.
Where is CodecOutputLists defined?
CodecOutputLists is defined in codec-base/src/main/java/io/netty/handler/codec/CodecOutputList.java at line 51.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free