UnsafeByteBufUtil Class — netty Architecture
Architecture documentation for the UnsafeByteBufUtil class in UnsafeByteBufUtil.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a["UnsafeByteBufUtil"] c99d3a37_d9b8_9eed_beea_ad7724aebdd5["UnsafeByteBufUtil.java"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|defined in| c99d3a37_d9b8_9eed_beea_ad7724aebdd5 d356e941_856a_4a4d_00ac_1449a287f3a1["getByte()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| d356e941_856a_4a4d_00ac_1449a287f3a1 bb305000_1c2e_fc56_3232_7a19da9d98e2["getShort()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| bb305000_1c2e_fc56_3232_7a19da9d98e2 65e3c6e7_7963_2f5f_402d_1950b0141ffd["getShortLE()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| 65e3c6e7_7963_2f5f_402d_1950b0141ffd 4b47d8ea_d1dc_c8b5_ce40_dedde7158d80["getUnsignedMedium()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| 4b47d8ea_d1dc_c8b5_ce40_dedde7158d80 169bb6f6_85b2_7833_87c9_8db7a8097081["getUnsignedMediumLE()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| 169bb6f6_85b2_7833_87c9_8db7a8097081 2224dc37_c0eb_0c83_a9ad_d4df4ad7053c["getInt()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| 2224dc37_c0eb_0c83_a9ad_d4df4ad7053c 328ccbd3_bd1e_48ff_e16b_c03ffb14ceec["getIntLE()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| 328ccbd3_bd1e_48ff_e16b_c03ffb14ceec 4acdfa3f_e7ee_0b55_b5b4_a31a048ebc99["getLong()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| 4acdfa3f_e7ee_0b55_b5b4_a31a048ebc99 de99570b_fd13_cd25_83b3_191137fc2991["getLongLE()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| de99570b_fd13_cd25_83b3_191137fc2991 28a3995c_cf32_eea0_3ad8_5da04b7247b2["setByte()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| 28a3995c_cf32_eea0_3ad8_5da04b7247b2 03e2248e_0c02_a822_c29c_c12faa32f83b["setShort()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| 03e2248e_0c02_a822_c29c_c12faa32f83b 4067d53e_de3d_d51c_3637_5151a99924f9["setShortLE()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| 4067d53e_de3d_d51c_3637_5151a99924f9 9780a65f_f7a7_aa6a_e377_9241c372be9b["setMedium()"] 2f99d7c3_a5a0_5538_ae7e_a825ef1ab37a -->|method| 9780a65f_f7a7_aa6a_e377_9241c372be9b
Relationship Graph
Source Code
buffer/src/main/java/io/netty/buffer/UnsafeByteBufUtil.java lines 34–702
final class UnsafeByteBufUtil {
private static final boolean UNALIGNED = PlatformDependent.isUnaligned();
private static final byte ZERO = 0;
private static final int MAX_HAND_ROLLED_SET_ZERO_BYTES = 64;
static byte getByte(long address) {
return PlatformDependent.getByte(address);
}
static short getShort(long address) {
if (UNALIGNED) {
short v = PlatformDependent.getShort(address);
return BIG_ENDIAN_NATIVE_ORDER ? v : Short.reverseBytes(v);
}
return (short) (PlatformDependent.getByte(address) << 8 | PlatformDependent.getByte(address + 1) & 0xff);
}
static short getShortLE(long address) {
if (UNALIGNED) {
short v = PlatformDependent.getShort(address);
return BIG_ENDIAN_NATIVE_ORDER ? Short.reverseBytes(v) : v;
}
return (short) (PlatformDependent.getByte(address) & 0xff | PlatformDependent.getByte(address + 1) << 8);
}
static int getUnsignedMedium(long address) {
if (UNALIGNED) {
return (PlatformDependent.getByte(address) & 0xff) << 16 |
(BIG_ENDIAN_NATIVE_ORDER ? PlatformDependent.getShort(address + 1)
: Short.reverseBytes(PlatformDependent.getShort(address + 1))) & 0xffff;
}
return (PlatformDependent.getByte(address) & 0xff) << 16 |
(PlatformDependent.getByte(address + 1) & 0xff) << 8 |
PlatformDependent.getByte(address + 2) & 0xff;
}
static int getUnsignedMediumLE(long address) {
if (UNALIGNED) {
return (PlatformDependent.getByte(address) & 0xff) |
((BIG_ENDIAN_NATIVE_ORDER ? Short.reverseBytes(PlatformDependent.getShort(address + 1))
: PlatformDependent.getShort(address + 1)) & 0xffff) << 8;
}
return PlatformDependent.getByte(address) & 0xff |
(PlatformDependent.getByte(address + 1) & 0xff) << 8 |
(PlatformDependent.getByte(address + 2) & 0xff) << 16;
}
static int getInt(long address) {
if (UNALIGNED) {
int v = PlatformDependent.getInt(address);
return BIG_ENDIAN_NATIVE_ORDER ? v : Integer.reverseBytes(v);
}
return PlatformDependent.getByte(address) << 24 |
(PlatformDependent.getByte(address + 1) & 0xff) << 16 |
(PlatformDependent.getByte(address + 2) & 0xff) << 8 |
PlatformDependent.getByte(address + 3) & 0xff;
}
static int getIntLE(long address) {
if (UNALIGNED) {
int v = PlatformDependent.getInt(address);
return BIG_ENDIAN_NATIVE_ORDER ? Integer.reverseBytes(v) : v;
}
return PlatformDependent.getByte(address) & 0xff |
(PlatformDependent.getByte(address + 1) & 0xff) << 8 |
(PlatformDependent.getByte(address + 2) & 0xff) << 16 |
PlatformDependent.getByte(address + 3) << 24;
}
static long getLong(long address) {
if (UNALIGNED) {
long v = PlatformDependent.getLong(address);
return BIG_ENDIAN_NATIVE_ORDER ? v : Long.reverseBytes(v);
}
return ((long) PlatformDependent.getByte(address)) << 56 |
(PlatformDependent.getByte(address + 1) & 0xffL) << 48 |
(PlatformDependent.getByte(address + 2) & 0xffL) << 40 |
(PlatformDependent.getByte(address + 3) & 0xffL) << 32 |
(PlatformDependent.getByte(address + 4) & 0xffL) << 24 |
(PlatformDependent.getByte(address + 5) & 0xffL) << 16 |
(PlatformDependent.getByte(address + 6) & 0xffL) << 8 |
Source
Frequently Asked Questions
What is the UnsafeByteBufUtil class?
UnsafeByteBufUtil is a class in the netty codebase, defined in buffer/src/main/java/io/netty/buffer/UnsafeByteBufUtil.java.
Where is UnsafeByteBufUtil defined?
UnsafeByteBufUtil is defined in buffer/src/main/java/io/netty/buffer/UnsafeByteBufUtil.java at line 34.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free