SimpleLeakAwareCompositeByteBuf Class — netty Architecture
Architecture documentation for the SimpleLeakAwareCompositeByteBuf class in SimpleLeakAwareCompositeByteBuf.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 10e7d6e2_e592_7053_a244_dd2555fc49bf["SimpleLeakAwareCompositeByteBuf"] e435b191_9ed8_1758_7b08_abbe836bec73["SimpleLeakAwareCompositeByteBuf.java"] 10e7d6e2_e592_7053_a244_dd2555fc49bf -->|defined in| e435b191_9ed8_1758_7b08_abbe836bec73 44901eb5_6be6_ed39_0e2a_7b6d29b2335f["SimpleLeakAwareCompositeByteBuf()"] 10e7d6e2_e592_7053_a244_dd2555fc49bf -->|method| 44901eb5_6be6_ed39_0e2a_7b6d29b2335f 7414785c_369b_00a9_6fc6_aa2168a3e1e5["release()"] 10e7d6e2_e592_7053_a244_dd2555fc49bf -->|method| 7414785c_369b_00a9_6fc6_aa2168a3e1e5 50d38ef3_dcb0_d91b_b236_09fc5fa644ab["closeLeak()"] 10e7d6e2_e592_7053_a244_dd2555fc49bf -->|method| 50d38ef3_dcb0_d91b_b236_09fc5fa644ab 4c94952b_4b23_7e7e_625f_3b6ad443d9a0["ByteBuf()"] 10e7d6e2_e592_7053_a244_dd2555fc49bf -->|method| 4c94952b_4b23_7e7e_625f_3b6ad443d9a0 3ec4489f_3cfe_7ed3_6d45_5c841a78ac50["SimpleLeakAwareByteBuf()"] 10e7d6e2_e592_7053_a244_dd2555fc49bf -->|method| 3ec4489f_3cfe_7ed3_6d45_5c841a78ac50
Relationship Graph
Source Code
buffer/src/main/java/io/netty/buffer/SimpleLeakAwareCompositeByteBuf.java lines 24–126
class SimpleLeakAwareCompositeByteBuf extends WrappedCompositeByteBuf {
final ResourceLeakTracker<ByteBuf> leak;
SimpleLeakAwareCompositeByteBuf(CompositeByteBuf wrapped, ResourceLeakTracker<ByteBuf> leak) {
super(wrapped);
this.leak = ObjectUtil.checkNotNull(leak, "leak");
}
@Override
public boolean release() {
// Call unwrap() before just in case that super.release() will change the ByteBuf instance that is returned
// by unwrap().
ByteBuf unwrapped = unwrap();
if (super.release()) {
closeLeak(unwrapped);
return true;
}
return false;
}
@Override
public boolean release(int decrement) {
// Call unwrap() before just in case that super.release() will change the ByteBuf instance that is returned
// by unwrap().
ByteBuf unwrapped = unwrap();
if (super.release(decrement)) {
closeLeak(unwrapped);
return true;
}
return false;
}
private void closeLeak(ByteBuf trackedByteBuf) {
// Close the ResourceLeakTracker with the tracked ByteBuf as argument. This must be the same that was used when
// calling DefaultResourceLeak.track(...).
boolean closed = leak.close(trackedByteBuf);
assert closed;
}
@Override
public ByteBuf order(ByteOrder endianness) {
if (order() == endianness) {
return this;
} else {
return newLeakAwareByteBuf(super.order(endianness));
}
}
@Override
public ByteBuf slice() {
return newLeakAwareByteBuf(super.slice());
}
@Override
public ByteBuf retainedSlice() {
return newLeakAwareByteBuf(super.retainedSlice());
}
@Override
public ByteBuf slice(int index, int length) {
return newLeakAwareByteBuf(super.slice(index, length));
}
@Override
public ByteBuf retainedSlice(int index, int length) {
return newLeakAwareByteBuf(super.retainedSlice(index, length));
}
@Override
public ByteBuf duplicate() {
return newLeakAwareByteBuf(super.duplicate());
}
@Override
public ByteBuf retainedDuplicate() {
return newLeakAwareByteBuf(super.retainedDuplicate());
}
@Override
public ByteBuf readSlice(int length) {
Source
Frequently Asked Questions
What is the SimpleLeakAwareCompositeByteBuf class?
SimpleLeakAwareCompositeByteBuf is a class in the netty codebase, defined in buffer/src/main/java/io/netty/buffer/SimpleLeakAwareCompositeByteBuf.java.
Where is SimpleLeakAwareCompositeByteBuf defined?
SimpleLeakAwareCompositeByteBuf is defined in buffer/src/main/java/io/netty/buffer/SimpleLeakAwareCompositeByteBuf.java at line 24.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free