Home / Class/ DecrementingCleanableDirectBuffer Class — netty Architecture

DecrementingCleanableDirectBuffer Class — netty Architecture

Architecture documentation for the DecrementingCleanableDirectBuffer class in UnpooledByteBufAllocator.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  835cca31_741d_f3b9_14cc_cda9675445f5["DecrementingCleanableDirectBuffer"]
  0b4b2671_fb24_9a0d_bc3a_aef00ae524b0["UnpooledByteBufAllocator.java"]
  835cca31_741d_f3b9_14cc_cda9675445f5 -->|defined in| 0b4b2671_fb24_9a0d_bc3a_aef00ae524b0
  11bc4317_e275_74e2_10b8_a397d6938773["DecrementingCleanableDirectBuffer()"]
  835cca31_741d_f3b9_14cc_cda9675445f5 -->|method| 11bc4317_e275_74e2_10b8_a397d6938773
  8080fba4_e1a0_d8f6_01e0_8ac66af10b58["ByteBuffer()"]
  835cca31_741d_f3b9_14cc_cda9675445f5 -->|method| 8080fba4_e1a0_d8f6_01e0_8ac66af10b58
  fe8493db_25dc_42cf_428e_6939ca598384["clean()"]
  835cca31_741d_f3b9_14cc_cda9675445f5 -->|method| fe8493db_25dc_42cf_428e_6939ca598384
  2c53924d_df49_e260_e7fd_66ca5248d92e["hasMemoryAddress()"]
  835cca31_741d_f3b9_14cc_cda9675445f5 -->|method| 2c53924d_df49_e260_e7fd_66ca5248d92e
  dacf10ae_2b58_72db_2f0a_a09d101ad9f8["memoryAddress()"]
  835cca31_741d_f3b9_14cc_cda9675445f5 -->|method| dacf10ae_2b58_72db_2f0a_a09d101ad9f8

Relationship Graph

Source Code

buffer/src/main/java/io/netty/buffer/UnpooledByteBufAllocator.java lines 245–282

    private static final class DecrementingCleanableDirectBuffer implements CleanableDirectBuffer {
        private final UnpooledByteBufAllocator alloc;
        private final CleanableDirectBuffer delegate;

        private DecrementingCleanableDirectBuffer(
                ByteBufAllocator alloc, CleanableDirectBuffer delegate) {
            this(alloc, delegate, delegate.buffer().capacity());
        }

        private DecrementingCleanableDirectBuffer(
                ByteBufAllocator alloc, CleanableDirectBuffer delegate, int capacityConsumed) {
            this.alloc = (UnpooledByteBufAllocator) alloc;
            this.alloc.incrementDirect(capacityConsumed);
            this.delegate = delegate;
        }

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

        @Override
        public void clean() {
            int capacity = delegate.buffer().capacity();
            delegate.clean();
            alloc.decrementDirect(capacity);
        }

        @Override
        public boolean hasMemoryAddress() {
            return delegate.hasMemoryAddress();
        }

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

Frequently Asked Questions

What is the DecrementingCleanableDirectBuffer class?
DecrementingCleanableDirectBuffer is a class in the netty codebase, defined in buffer/src/main/java/io/netty/buffer/UnpooledByteBufAllocator.java.
Where is DecrementingCleanableDirectBuffer defined?
DecrementingCleanableDirectBuffer is defined in buffer/src/main/java/io/netty/buffer/UnpooledByteBufAllocator.java at line 245.

Analyze Your Own Codebase

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

Try Supermodel Free