Home / Class/ HeapByteBufUtil Class — netty Architecture

HeapByteBufUtil Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  96900c63_c206_9fee_a447_dc63a822832b["HeapByteBufUtil"]
  78670ec2_b21a_598e_de8e_17b714bbe22e["HeapByteBufUtil.java"]
  96900c63_c206_9fee_a447_dc63a822832b -->|defined in| 78670ec2_b21a_598e_de8e_17b714bbe22e
  65b9be38_6a5c_3446_d06b_fa2318608494["getByte()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| 65b9be38_6a5c_3446_d06b_fa2318608494
  dd11c17b_7138_cb83_1675_b58f6b9652a2["getShort()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| dd11c17b_7138_cb83_1675_b58f6b9652a2
  5bdfa373_e7ae_832a_0b5d_e082d57aa2e7["getShort0()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| 5bdfa373_e7ae_832a_0b5d_e082d57aa2e7
  9fde2508_0502_bc8a_59da_ba1374b0feac["getShortLE()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| 9fde2508_0502_bc8a_59da_ba1374b0feac
  7fd38300_7bc7_8796_e612_3ca1646d374a["getUnsignedMedium()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| 7fd38300_7bc7_8796_e612_3ca1646d374a
  fba4c8e3_d18c_4de8_d8c5_3e6d1a82a0e9["getUnsignedMediumLE()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| fba4c8e3_d18c_4de8_d8c5_3e6d1a82a0e9
  ad5be310_a565_c051_f165_bc0c335fb5d5["getInt()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| ad5be310_a565_c051_f165_bc0c335fb5d5
  a61a39d8_82e9_dfd9_08a1_9270933b2dea["getInt0()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| a61a39d8_82e9_dfd9_08a1_9270933b2dea
  d98359a8_ed0b_0c6e_ad9b_05464a8f94e2["getIntLE()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| d98359a8_ed0b_0c6e_ad9b_05464a8f94e2
  e9dbdee1_bc89_e1c3_9ebb_71bc64e1055f["getIntLE0()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| e9dbdee1_bc89_e1c3_9ebb_71bc64e1055f
  3955a973_3315_e360_8b6c_c84d69bbd802["getLong()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| 3955a973_3315_e360_8b6c_c84d69bbd802
  af22ea41_b9b1_03f0_4d3c_d980e8402280["getLong0()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| af22ea41_b9b1_03f0_4d3c_d980e8402280
  1e87124c_1877_438c_75b2_fe6b52c36456["getLongLE()"]
  96900c63_c206_9fee_a447_dc63a822832b -->|method| 1e87124c_1877_438c_75b2_fe6b52c36456

Relationship Graph

Source Code

buffer/src/main/java/io/netty/buffer/HeapByteBufUtil.java lines 23–226

final class HeapByteBufUtil {

    static byte getByte(byte[] memory, int index) {
        return memory[index];
    }

    static short getShort(byte[] memory, int index) {
        if (PlatformDependent.hasVarHandle()) {
            return VarHandleByteBufferAccess.getShortBE(memory, index);
        }
        return getShort0(memory, index);
    }

    private static short getShort0(byte[] memory, int index) {
        return (short) (memory[index] << 8 | memory[index + 1] & 0xFF);
    }

    static short getShortLE(byte[] memory, int index) {
        if (PlatformDependent.hasVarHandle()) {
            return VarHandleByteBufferAccess.getShortLE(memory, index);
        }
        return (short) (memory[index] & 0xff | memory[index + 1] << 8);
    }

    static int getUnsignedMedium(byte[] memory, int index) {
        return  (memory[index]     & 0xff) << 16 |
                (memory[index + 1] & 0xff) <<  8 |
                memory[index + 2] & 0xff;
    }

    static int getUnsignedMediumLE(byte[] memory, int index) {
        return  memory[index]     & 0xff         |
                (memory[index + 1] & 0xff) <<  8 |
                (memory[index + 2] & 0xff) << 16;
    }

    static int getInt(byte[] memory, int index) {
        if (PlatformDependent.hasVarHandle()) {
            return VarHandleByteBufferAccess.getIntBE(memory, index);
        }
        return getInt0(memory, index);
    }

    private static int getInt0(byte[] memory, int index) {
        return (memory[index] & 0xFF) << 24 |
               (memory[index + 1] & 0xFF) << 16 |
               (memory[index + 2] & 0xFF) << 8 |
               (memory[index + 3] & 0xFF);
    }

    static int getIntLE(byte[] memory, int index) {
        if (PlatformDependent.hasVarHandle()) {
            return VarHandleByteBufferAccess.getIntLE(memory, index);
        }
        return getIntLE0(memory, index);
    }

    private static int getIntLE0(byte[] memory, int index) {
        return (memory[index] & 0xFF) |
               (memory[index + 1] & 0xFF) << 8 |
               (memory[index + 2] & 0xFF) << 16 |
               (memory[index + 3] & 0xFF) << 24;
    }

    static long getLong(byte[] memory, int index) {
        if (PlatformDependent.hasVarHandle()) {
            return VarHandleByteBufferAccess.getLongBE(memory, index);
        }
        return getLong0(memory, index);
    }

    private static long getLong0(byte[] memory, int index) {
        return ((long) memory[index] & 0xFF) << 56 |
               ((long) memory[index + 1] & 0xFF) << 48 |
               ((long) memory[index + 2] & 0xFF) << 40 |
               ((long) memory[index + 3] & 0xFF) << 32 |
               ((long) memory[index + 4] & 0xFF) << 24 |
               ((long) memory[index + 5] & 0xFF) << 16 |
               ((long) memory[index + 6] & 0xFF) << 8 |
               ((long) memory[index + 7] & 0xFF);
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free