Home / Class/ CleanableDirectBufferImpl Class — netty Architecture

CleanableDirectBufferImpl Class — netty Architecture

Architecture documentation for the CleanableDirectBufferImpl class in CleanerJava25.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  b250c4d1_4129_022d_d543_64362dea18fc["CleanableDirectBufferImpl"]
  65e55f1e_37ee_36e5_4c41_4fe66a648def["CleanerJava25.java"]
  b250c4d1_4129_022d_d543_64362dea18fc -->|defined in| 65e55f1e_37ee_36e5_4c41_4fe66a648def
  68242bcf_a2b6_d8fd_71cf_f17fbf258399["CleanableDirectBufferImpl()"]
  b250c4d1_4129_022d_d543_64362dea18fc -->|method| 68242bcf_a2b6_d8fd_71cf_f17fbf258399
  dc1d9866_d261_5cf3_85b9_772404f5024d["ByteBuffer()"]
  b250c4d1_4129_022d_d543_64362dea18fc -->|method| dc1d9866_d261_5cf3_85b9_772404f5024d
  882415a4_b442_2979_aa70_377b10587cc7["clean()"]
  b250c4d1_4129_022d_d543_64362dea18fc -->|method| 882415a4_b442_2979_aa70_377b10587cc7
  256d5c2e_efaf_0501_9647_0b112c2258b7["hasMemoryAddress()"]
  b250c4d1_4129_022d_d543_64362dea18fc -->|method| 256d5c2e_efaf_0501_9647_0b112c2258b7
  ff5e00fa_8dd7_9827_e8f2_1dfe32d8d2ed["memoryAddress()"]
  b250c4d1_4129_022d_d543_64362dea18fc -->|method| ff5e00fa_8dd7_9827_e8f2_1dfe32d8d2ed

Relationship Graph

Source Code

common/src/main/java/io/netty/util/internal/CleanerJava25.java lines 186–223

    private static final class CleanableDirectBufferImpl implements CleanableDirectBuffer {
        private final AutoCloseable closeable;
        private final ByteBuffer buffer;
        private final long memoryAddress;

        // NOTE: must be at least package-protected to allow calls from the method handles!
        CleanableDirectBufferImpl(AutoCloseable closeable, ByteBuffer buffer, long memoryAddress) {
            this.closeable = closeable;
            this.buffer = buffer;
            this.memoryAddress = memoryAddress;
        }

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

        @Override
        public void clean() {
            try {
                closeable.close();
            } catch (RuntimeException e) {
                throw e; // Propagate the runtime exceptions that Arena would normally throw.
            } catch (Exception e) {
                throw new IllegalStateException("Unexpected close exception", e);
            }
        }

        @Override
        public boolean hasMemoryAddress() {
            return true;
        }

        @Override
        public long memoryAddress() {
            return memoryAddress;
        }
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free