Home / Type/ ByteBufType Type — netty Architecture

ByteBufType Type — netty Architecture

Architecture documentation for the ByteBufType type/interface in ByteBufAccessBenchmark.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  b1a07b0f_4b08_aba0_b111_bd22da1f7462["ByteBufType"]
  1b0a4394_fea1_4c21_77ba_cde3db4b1a55["ByteBufAccessBenchmark.java"]
  b1a07b0f_4b08_aba0_b111_bd22da1f7462 -->|defined in| 1b0a4394_fea1_4c21_77ba_cde3db4b1a55
  style b1a07b0f_4b08_aba0_b111_bd22da1f7462 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

microbench/src/main/java/io/netty/buffer/ByteBufAccessBenchmark.java lines 79–140

    public enum ByteBufType {
        UNSAFE {
            @Override
            ByteBuf newBuffer() {
                return new UnpooledUnsafeDirectByteBuf(
                        UnpooledByteBufAllocator.DEFAULT, 64, 64).setIndex(0, 64);
            }
        },
        DIRECT {
            @Override
            ByteBuf newBuffer() {
                return new UnpooledDirectByteBuf(
                        UnpooledByteBufAllocator.DEFAULT, 64, 64).setIndex(0, 64);
            }
        },
        UNSAFE_SLICE {
            @Override
            ByteBuf newBuffer() {
                return UNSAFE.newBuffer().slice(16, 48);
            }
        },
        UNSAFE_RETAINED_SLICE {
            @Override
            ByteBuf newBuffer() {
                ByteBuf pooledBuffer = PooledByteBufAllocator.DEFAULT.directBuffer(64, 64)
                        .setIndex(0, 64);
                if (!(pooledBuffer instanceof PooledUnsafeDirectByteBuf)) {
                    throw new IllegalStateException("Expected PooledUnsafeDirectByteBuf");
                }
                try {
                    return pooledBuffer.retainedSlice(16, 48);
                } finally {
                    pooledBuffer.release();
                }
            }
        },
        HEAP {
            @Override
            ByteBuf newBuffer() {
                if (PlatformDependent.hasUnsafe()) {
                    return new UnpooledUnsafeHeapByteBuf(
                            UnpooledByteBufAllocator.DEFAULT, 64, 64).setIndex(0, 64);
                } else {
                    return new UnpooledHeapByteBuf(
                            UnpooledByteBufAllocator.DEFAULT, 64, 64).setIndex(0, 64);
                }
            }
        },
        COMPOSITE {
            @Override
            ByteBuf newBuffer() {
                return Unpooled.wrappedBuffer(UNSAFE.newBuffer(), HEAP.newBuffer());
            }
        },
        NIO {
            @Override
            ByteBuf newBuffer() {
                return new NioFacade(PlatformDependent.allocateDirect(64));
            }
        };
        abstract ByteBuf newBuffer();
    }

Frequently Asked Questions

What is the ByteBufType type?
ByteBufType is a type/interface in the netty codebase, defined in microbench/src/main/java/io/netty/buffer/ByteBufAccessBenchmark.java.
Where is ByteBufType defined?
ByteBufType is defined in microbench/src/main/java/io/netty/buffer/ByteBufAccessBenchmark.java at line 79.

Analyze Your Own Codebase

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

Try Supermodel Free