public void readBytesTo(byte[] buffer, int offset, int length) { Requires.nonNull(buffer, "buffer"); Requires.positive(offset, "offset"); Requires.positive(length, "length"); ensureCanGrow(length); Unsafe.INSTANCE.copyMemory( null, address + position, buffer, Unsafe.BYTEARRAY_BASEOFFSET + offset * Unsafe.BYTEARRAY_INDEXSCALE, length); position += length; }
public String readString() { int length = (int) readVLong(); Requires.range(length, 0, paging.getPageSize(), "length"); char[] buffer = new char[length]; readUtf8To(buffer, 0, length); return new String(buffer); }
public byte[] readBytes() { int len = (int) readVLong(); Requires.range(len, 0, paging.getPageSize(), "len"); ensureCanGrow(len); byte[] blob = new byte[len]; Unsafe.INSTANCE.copyMemory(null, address + position, blob, Unsafe.BYTEARRAY_BASEOFFSET, len); position += len; return blob; }
public long readPageNum() { PageNum pageNum = paging.getPageNum(); ensureCanGrow(pageNum.size()); long result = pageNum.readPageNum(address + position); Requires.positive(result, "result"); position += pageNum.size(); return result; }
public int readInnerRef() { InnerRef innerRef = paging.getInnerRef(); ensureCanGrow(innerRef.size()); int result = innerRef.readInnerRef(address + position); Requires.range(result, 0, paging.getPageSize(), "result"); position += innerRef.size(); return result; }