public static byte[] serializeVIntArray(int[] intArray, int encodedLength) { int size = WritableUtils.getVIntSize(encodedLength); for (int i = 0; i < intArray.length; i++) { size += WritableUtils.getVIntSize(intArray[i]); } int offset = 0; byte[] out = new byte[size]; offset += ByteUtil.vintToBytes(out, offset, size); for (int i = 0; i < intArray.length; i++) { offset += ByteUtil.vintToBytes(out, offset, intArray[i]); } return out; }
private int writeVarLengthField(ImmutableBytesWritable ptr, byte[] b, int offset) { int length = ptr.getLength(); offset += ByteUtil.vintToBytes(b, offset, length); System.arraycopy(ptr.get(), ptr.getOffset(), b, offset, length); offset += length; return offset; }
buffer = new byte[serializationSize]; int offset = 1; offset += ByteUtil.vintToBytes(buffer, offset, this.valueVsCount.size()); for (Entry<ImmutableBytesPtr, Integer> entry : this.valueVsCount.entrySet()) { ImmutableBytesPtr key = entry.getKey(); offset += ByteUtil.vintToBytes(buffer, offset, key.getLength()); System.arraycopy(key.get(), key.getOffset(), buffer, offset, key.getLength()); offset += key.getLength(); offset += ByteUtil.vintToBytes(buffer, offset, entry.getValue().intValue());
@Test public void testVIntToBytes() { for (int i = -10000; i <= 10000; i++) { byte[] vint = Bytes.vintToBytes(i); int vintSize = vint.length; byte[] vint2 = new byte[vint.length]; assertEquals(vintSize, ByteUtil.vintToBytes(vint2, 0, i)); assertTrue(Bytes.BYTES_COMPARATOR.compare(vint,vint2) == 0); } }