MsgHdrMemoryArray Class — netty Architecture
Architecture documentation for the MsgHdrMemoryArray class in MsgHdrMemoryArray.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 112c3231_d4bd_2970_93ee_a7e32f2d0eec["MsgHdrMemoryArray"] d0b19d2c_9037_c23e_2652_a52fc112da18["MsgHdrMemoryArray.java"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|defined in| d0b19d2c_9037_c23e_2652_a52fc112da18 2bc6f38f_21ab_5695_0409_9b9c7bcd8a61["MsgHdrMemoryArray()"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|method| 2bc6f38f_21ab_5695_0409_9b9c7bcd8a61 efef8567_677b_a824_9461_2f85abb114f8["isFull()"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|method| efef8567_677b_a824_9461_2f85abb114f8 ce3ffa0d_7d27_a8a4_47fb_2d818aec66a0["MsgHdrMemory()"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|method| ce3ffa0d_7d27_a8a4_47fb_2d818aec66a0 94b2a341_32c2_a29d_29a7_885d42aeb56d["restoreNextHdr()"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|method| 94b2a341_32c2_a29d_29a7_885d42aeb56d e85c969a_99e7_d9b9_7fbc_51252634d6b5["id()"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|method| e85c969a_99e7_d9b9_7fbc_51252634d6b5 db15270f_2faf_33c9_58c6_136111d91a61["setId()"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|method| db15270f_2faf_33c9_58c6_136111d91a61 99aea286_ed90_f8f9_5351_66655c24daac["clear()"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|method| 99aea286_ed90_f8f9_5351_66655c24daac 6a4bd7ac_2ac1_c1de_38a6_2281864fdfb0["length()"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|method| 6a4bd7ac_2ac1_c1de_38a6_2281864fdfb0 07307a2c_8dae_399e_3b9d_dd54bf0a8064["release()"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|method| 07307a2c_8dae_399e_3b9d_dd54bf0a8064 130e9123_4518_4e6c_53c8_0a9108ce26e6["capacity()"] 112c3231_d4bd_2970_93ee_a7e32f2d0eec -->|method| 130e9123_4518_4e6c_53c8_0a9108ce26e6
Relationship Graph
Source Code
transport-classes-io_uring/src/main/java/io/netty/channel/uring/MsgHdrMemoryArray.java lines 24–97
final class MsgHdrMemoryArray {
static final long NO_ID = 0;
private final MsgHdrMemory[] hdrs;
private final int capacity;
private final long[] ids;
private final CleanableDirectBuffer msgHdrMemoryArrayMemoryCleanable;
private boolean released;
private int idx;
MsgHdrMemoryArray(short capacity) {
assert capacity >= 0;
this.capacity = capacity;
hdrs = new MsgHdrMemory[capacity];
ids = new long[capacity];
int total = MsgHdrMemory.MSG_HDR_SIZE * capacity;
this.msgHdrMemoryArrayMemoryCleanable = Buffer.allocateDirectBufferWithNativeOrder(total);
ByteBuffer msgHdrMemoryArrayMemory = msgHdrMemoryArrayMemoryCleanable.buffer();
for (int i = 0; i < hdrs.length; i++) {
hdrs[i] = new MsgHdrMemory((short) i, msgHdrMemoryArrayMemory);
ids[i] = NO_ID;
}
}
boolean isFull() {
return idx == hdrs.length;
}
MsgHdrMemory nextHdr() {
if (isFull()) {
return null;
}
return hdrs[idx++];
}
void restoreNextHdr(MsgHdrMemory hdr) {
assert hdr.idx() == idx - 1;
idx--;
}
MsgHdrMemory hdr(int idx) {
return hdrs[idx];
}
long id(int idx) {
return ids[idx];
}
void setId(int idx, long id) {
ids[idx] = id;
}
void clear() {
Arrays.fill(ids, 0, idx, NO_ID);
idx = 0;
}
int length() {
return idx;
}
void release() {
assert !released;
released = true;
for (MsgHdrMemory hdr: hdrs) {
hdr.release();
}
msgHdrMemoryArrayMemoryCleanable.clean();
}
int capacity() {
return capacity;
}
}
Source
Frequently Asked Questions
What is the MsgHdrMemoryArray class?
MsgHdrMemoryArray is a class in the netty codebase, defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/MsgHdrMemoryArray.java.
Where is MsgHdrMemoryArray defined?
MsgHdrMemoryArray is defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/MsgHdrMemoryArray.java at line 24.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free