Home / Class/ PooledDirectByteBuf Class — netty Architecture

PooledDirectByteBuf Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  0c356342_2e64_41e8_80a2_1d1923dc7709["PooledDirectByteBuf"]
  752d0815_f2f5_0646_2b64_003adc93a0f5["PooledDirectByteBuf.java"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|defined in| 752d0815_f2f5_0646_2b64_003adc93a0f5
  c227fdfd_52bc_8f11_aa9e_fc0ae03ba17c["PooledDirectByteBuf()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| c227fdfd_52bc_8f11_aa9e_fc0ae03ba17c
  fda5e1dc_dd49_4f01_c733_d7a2484a17f5["ByteBuffer()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| fda5e1dc_dd49_4f01_c733_d7a2484a17f5
  682b0b58_9948_e4d8_092d_be713c2cf080["isDirect()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| 682b0b58_9948_e4d8_092d_be713c2cf080
  7031e651_8ce1_edf9_120e_d5f99d6f5f6c["_getByte()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| 7031e651_8ce1_edf9_120e_d5f99d6f5f6c
  6a24e0f7_4eaa_caf4_df8c_8f23e66a3cee["_getShort()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| 6a24e0f7_4eaa_caf4_df8c_8f23e66a3cee
  841d1af4_b363_7793_f7df_135ba6678e84["_getShortLE()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| 841d1af4_b363_7793_f7df_135ba6678e84
  f25308c9_4ea4_782e_3e27_ca434511c121["_getUnsignedMedium()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| f25308c9_4ea4_782e_3e27_ca434511c121
  adee1abf_6278_3aa5_b6c6_d1fd05998069["_getUnsignedMediumLE()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| adee1abf_6278_3aa5_b6c6_d1fd05998069
  8925fe24_ccf5_4e23_97d5_97571eeb39f1["_getInt()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| 8925fe24_ccf5_4e23_97d5_97571eeb39f1
  4baf0584_31d9_8501_c837_96008cf9cf43["_getIntLE()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| 4baf0584_31d9_8501_c837_96008cf9cf43
  6672ca48_1b08_4d9e_6c4b_e98c889c9a70["_getLong()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| 6672ca48_1b08_4d9e_6c4b_e98c889c9a70
  388471a1_32c7_7c4f_b033_9a1a1a9ca519["_getLongLE()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| 388471a1_32c7_7c4f_b033_9a1a1a9ca519
  16606b5d_4d53_ddb3_5511_6a39a4ae2037["ByteBuf()"]
  0c356342_2e64_41e8_80a2_1d1923dc7709 -->|method| 16606b5d_4d53_ddb3_5511_6a39a4ae2037

Relationship Graph

Source Code

buffer/src/main/java/io/netty/buffer/PooledDirectByteBuf.java lines 27–322

final class PooledDirectByteBuf extends PooledByteBuf<ByteBuffer> {

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

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

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

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

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

    @Override
    protected byte _getByte(int index) {
        return memory.get(idx(index));
    }

    @Override
    protected short _getShort(int index) {
        return memory.getShort(idx(index));
    }

    @Override
    protected short _getShortLE(int index) {
        return ByteBufUtil.swapShort(_getShort(index));
    }

    @Override
    protected int _getUnsignedMedium(int index) {
        index = idx(index);
        return (memory.get(index) & 0xff)     << 16 |
               (memory.get(index + 1) & 0xff) << 8  |
               memory.get(index + 2) & 0xff;
    }

    @Override
    protected int _getUnsignedMediumLE(int index) {
        index = idx(index);
        return memory.get(index)      & 0xff        |
               (memory.get(index + 1) & 0xff) << 8  |
               (memory.get(index + 2) & 0xff) << 16;
    }

    @Override
    protected int _getInt(int index) {
        return memory.getInt(idx(index));
    }

    @Override
    protected int _getIntLE(int index) {
        return ByteBufUtil.swapInt(_getInt(index));
    }

    @Override
    protected long _getLong(int index) {
        return memory.getLong(idx(index));
    }

    @Override
    protected long _getLongLE(int index) {
        return ByteBufUtil.swapLong(_getLong(index));
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free