/** * Reads a 31-bit positive integer from the buffer, which was written using 1 or 4 bytes. * * @return the integer read */ public int getInt1_4Bytes() { byte flagByte = get(); position(position() - 1); if ((flagByte & 0x80) != 0) { //length 4 bytes return getInt() & 0x7FFFFFFF; } else { //length 1 byte return get(); } }
/** * Reads a 62-bit positive integer from the buffer, which was written using 2, 4, or 8 bytes. * * @return the integer read */ public long getInt2_4_8Bytes() { byte flagByte = get(); position(position() - 1); if ((flagByte & 0x80) != 0) { if ((flagByte & 0x40) != 0) { //length 8 bytes return getLong() & 0x3FFFFFFFFFFFFFFFL; } else { //length 4 bytes return getInt() & 0x3FFFFFFF; } } else { //length 2 bytes return getShort(); } }
int size = buf.getInt(); int startPos = buf.position();
/** * Reads a 30-bit positive integer from the buffer, which was written using 1, 2, or 4 bytes. * * @return the integer read */ public int getInt1_2_4Bytes() { byte flagByte = get(); position(position() - 1); if ((flagByte & 0x80) != 0) { if ((flagByte & 0x40) != 0) { //length 4 bytes return getInt() & 0x3FFFFFFF; } else { //length 2 bytes return getShort() & 0x3FFF; } } else { //length 1 byte return get(); } }
int size = buf.getInt(); int startPos = buf.position();