Home / Class/ SimpleLeakAwareCompositeByteBuf Class — netty Architecture

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) {

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