Home / Class/ DirectCleaner Class — netty Architecture

DirectCleaner Class — netty Architecture

Architecture documentation for the DirectCleaner class in DirectCleaner.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  0c19ed67_fc5e_d201_4b7f_ef464cc43ad4["DirectCleaner"]
  22f71322_6bd5_1aaf_502c_245e9f03332b["DirectCleaner.java"]
  0c19ed67_fc5e_d201_4b7f_ef464cc43ad4 -->|defined in| 22f71322_6bd5_1aaf_502c_245e9f03332b
  abbd78e6_2771_2432_9853_9b2af9e23586["CleanableDirectBuffer()"]
  0c19ed67_fc5e_d201_4b7f_ef464cc43ad4 -->|method| abbd78e6_2771_2432_9853_9b2af9e23586
  120d3778_5b40_5289_49a8_1f277fea4419["freeDirectBuffer()"]
  0c19ed67_fc5e_d201_4b7f_ef464cc43ad4 -->|method| 120d3778_5b40_5289_49a8_1f277fea4419

Relationship Graph

Source Code

common/src/main/java/io/netty/util/internal/DirectCleaner.java lines 20–53

final class DirectCleaner implements Cleaner {
    @Override
    public CleanableDirectBuffer allocate(int capacity) {
        return new CleanableDirectBufferImpl(PlatformDependent.allocateDirectNoCleaner(capacity));
    }

    @Override
    public void freeDirectBuffer(ByteBuffer buffer) {
        PlatformDependent.freeDirectNoCleaner(buffer);
    }

    CleanableDirectBuffer reallocate(CleanableDirectBuffer buffer, int capacity) {
        ByteBuffer newByteBuffer = PlatformDependent.reallocateDirectNoCleaner(buffer.buffer(), capacity);
        return new CleanableDirectBufferImpl(newByteBuffer);
    }

    private static final class CleanableDirectBufferImpl implements CleanableDirectBuffer {
        private final ByteBuffer buffer;

        private CleanableDirectBufferImpl(ByteBuffer buffer) {
            this.buffer = buffer;
        }

        @Override
        public ByteBuffer buffer() {
            return buffer;
        }

        @Override
        public void clean() {
            PlatformDependent.freeDirectNoCleaner(buffer);
        }
    }
}

Frequently Asked Questions

What is the DirectCleaner class?
DirectCleaner is a class in the netty codebase, defined in common/src/main/java/io/netty/util/internal/DirectCleaner.java.
Where is DirectCleaner defined?
DirectCleaner is defined in common/src/main/java/io/netty/util/internal/DirectCleaner.java at line 20.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free