@Override public byte[] serialize() { byte[] result = new byte[SERIALIZATION_LENGTH]; BitConverter.writeLong(result, 0, SegmentKeyCache.this.segmentId); BitConverter.writeShort(result, Long.BYTES, this.keyHashGroup); return result; }
/** * Writes the given 16-bit Short to the given ArrayView at the given offset. * * @param target The ArrayView to write to. * @param offset The offset within the ArrayView to write at. * @param value The value to write. * @return The number of bytes written. */ public static int writeShort(ArrayView target, int offset, short value) { return writeShort(target.array(), target.arrayOffset() + offset, value); }
private ByteArraySegment serializePointer(PagePointer pointer) { assert pointer.getLength() <= Short.MAX_VALUE : "PagePointer.length too large"; ByteArraySegment result = new ByteArraySegment(new byte[this.indexPageConfig.getValueLength()]); BitConverter.writeLong(result, 0, pointer.getOffset()); BitConverter.writeShort(result, Long.BYTES, (short) pointer.getLength()); BitConverter.writeLong(result, Long.BYTES + Short.BYTES, pointer.getMinOffset()); return result; }