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();
}
Source
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