Home / Class/ PooledUnsafeDirectByteBuf Class — netty Architecture

PooledUnsafeDirectByteBuf Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  de255534_6787_b710_5b1f_d1e669f25a0d["PooledUnsafeDirectByteBuf"]
  c1d39692_4799_4158_3eb3_e3d49493c25f["PooledUnsafeDirectByteBuf.java"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|defined in| c1d39692_4799_4158_3eb3_e3d49493c25f
  32e7d41d_350f_03a7_02d0_6146628cfb5d["PooledUnsafeDirectByteBuf()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| 32e7d41d_350f_03a7_02d0_6146628cfb5d
  1dd27ab0_c883_a0b8_a1fb_ac511066bc5d["init()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| 1dd27ab0_c883_a0b8_a1fb_ac511066bc5d
  86af3079_6e81_4d88_8894_26485c76b971["initUnpooled()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| 86af3079_6e81_4d88_8894_26485c76b971
  b28545a2_7bc0_b3a1_19e4_2a828b7b5e79["initMemoryAddress()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| b28545a2_7bc0_b3a1_19e4_2a828b7b5e79
  c89ee588_1555_3307_394a_463a7dab5a3f["ByteBuffer()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| c89ee588_1555_3307_394a_463a7dab5a3f
  1db4b85b_55b0_1b94_086d_f2a3b90772df["isDirect()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| 1db4b85b_55b0_1b94_086d_f2a3b90772df
  19bac3c2_e3c5_4aa9_48a6_22f9e325a3a5["_getByte()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| 19bac3c2_e3c5_4aa9_48a6_22f9e325a3a5
  98ca945c_4113_61f2_0ab0_688588ea2fdb["_getShort()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| 98ca945c_4113_61f2_0ab0_688588ea2fdb
  c31d96c6_ffe2_831a_ffb5_d4c369937e26["_getShortLE()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| c31d96c6_ffe2_831a_ffb5_d4c369937e26
  e0c0b3e9_d16c_790a_4a4a_c678797bc59b["_getUnsignedMedium()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| e0c0b3e9_d16c_790a_4a4a_c678797bc59b
  f5b48b46_c9ec_29ad_badd_22fc2a0cf300["_getUnsignedMediumLE()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| f5b48b46_c9ec_29ad_badd_22fc2a0cf300
  0faf0cb3_590b_151e_785e_b5d70c114764["_getInt()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| 0faf0cb3_590b_151e_785e_b5d70c114764
  e5701a4a_0c91_3ffb_a1cc_a0755e625a89["_getIntLE()"]
  de255534_6787_b710_5b1f_d1e669f25a0d -->|method| e5701a4a_0c91_3ffb_a1cc_a0755e625a89

Relationship Graph

Source Code

buffer/src/main/java/io/netty/buffer/PooledUnsafeDirectByteBuf.java lines 28–278

final class PooledUnsafeDirectByteBuf extends PooledByteBuf<ByteBuffer> {

    private static final Recycler<PooledUnsafeDirectByteBuf> RECYCLER =
            new Recycler<PooledUnsafeDirectByteBuf>() {
                @Override
                protected PooledUnsafeDirectByteBuf newObject(Handle<PooledUnsafeDirectByteBuf> handle) {
                    return new PooledUnsafeDirectByteBuf(handle, 0);
                }
            };

    static PooledUnsafeDirectByteBuf newInstance(int maxCapacity) {
        PooledUnsafeDirectByteBuf buf = RECYCLER.get();
        buf.reuse(maxCapacity);
        return buf;
    }

    private long memoryAddress;

    private PooledUnsafeDirectByteBuf(Handle<PooledUnsafeDirectByteBuf> recyclerHandle, int maxCapacity) {
        super(recyclerHandle, maxCapacity);
    }

    @Override
    void init(PoolChunk<ByteBuffer> chunk, ByteBuffer nioBuffer,
              long handle, int offset, int length, int maxLength, PoolThreadCache cache, boolean threadLocal) {
        super.init(chunk, nioBuffer, handle, offset, length, maxLength, cache, threadLocal);
        initMemoryAddress();
    }

    @Override
    void initUnpooled(PoolChunk<ByteBuffer> chunk, int length) {
        super.initUnpooled(chunk, length);
        initMemoryAddress();
    }

    private void initMemoryAddress() {
        memoryAddress = PlatformDependent.directBufferAddress(memory) + offset;
    }

    @Override
    protected ByteBuffer newInternalNioBuffer(ByteBuffer memory) {
        return memory.duplicate();
    }

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

    @Override
    protected byte _getByte(int index) {
        return UnsafeByteBufUtil.getByte(addr(index));
    }

    @Override
    protected short _getShort(int index) {
        return UnsafeByteBufUtil.getShort(addr(index));
    }

    @Override
    protected short _getShortLE(int index) {
        return UnsafeByteBufUtil.getShortLE(addr(index));
    }

    @Override
    protected int _getUnsignedMedium(int index) {
        return UnsafeByteBufUtil.getUnsignedMedium(addr(index));
    }

    @Override
    protected int _getUnsignedMediumLE(int index) {
        return UnsafeByteBufUtil.getUnsignedMediumLE(addr(index));
    }

    @Override
    protected int _getInt(int index) {
        return UnsafeByteBufUtil.getInt(addr(index));
    }

    @Override
    protected int _getIntLE(int index) {

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free