/** * Writes byte array into memory location. * * @param ptr Pointer. * @param arr Array. */ public void writeBytes(long ptr, byte[] arr) { GridUnsafe.copyHeapOffheap(arr, GridUnsafe.BYTE_ARR_OFF, ptr, arr.length); }
/** * Writes part of byte array into memory location. * * @param ptr Pointer. * @param arr Array. * @param off Offset. * @param len Length. */ public void writeBytes(long ptr, byte[] arr, int off, int len) { GridUnsafe.copyHeapOffheap(arr, GridUnsafe.BYTE_ARR_OFF + off, ptr, len); }
/** */ @Override public void copyTo(long ptr) { GridUnsafe.copyHeapOffheap(buf, GridUnsafe.BYTE_ARR_OFF + off, ptr, size); } }
/** {@inheritDoc} */ @Override protected void copyAndShift(Object src, long offset, int len) { GridUnsafe.copyHeapOffheap(src, offset, ptr + pos, len); shift(len); }
/** {@inheritDoc} */ @Override public void write(byte[] b, int off, int len) { GridUnsafe.copyHeapOffheap(b, GridUnsafe.BYTE_ARR_OFF + off, move(len), len); }
/** * Copy source object to the stream shifting position afterwards. * * @param src Source. * @param off Offset. * @param len Length. */ private void copyAndShift(Object src, long off, int len) { ensureCapacity(pos + len); GridUnsafe.copyHeapOffheap(src, off, data + pos, len); shift(len); }
/** * @param obj Object. * @return Offheap address. */ private long copyOffheap(BinaryObjectImpl obj) { byte[] arr = obj.array(); long ptr = GridUnsafe.allocateMemory(arr.length); GridUnsafe.copyHeapOffheap(arr, GridUnsafe.BYTE_ARR_OFF, ptr, arr.length); return ptr; }
/** {@inheritDoc} */ @Override protected BinaryObjectExImpl toBinary(BinaryMarshaller marsh, Object obj) throws Exception { byte[] arr = marsh.marshal(obj); long ptr = GridUnsafe.allocateMemory(arr.length); ptrs.add(ptr); GridUnsafe.copyHeapOffheap(arr, GridUnsafe.BYTE_ARR_OFF, ptr, arr.length); return new BinaryObjectOffheapImpl(ctx, ptr, 0, arr.length); } }
/** {@inheritDoc} */ @Override protected BinaryObjectExImpl toBinary(BinaryMarshaller marsh, Object obj) throws Exception { byte[] arr = marsh.marshal(obj); long ptr = GridUnsafe.allocateMemory(arr.length); ptrs.add(ptr); GridUnsafe.copyHeapOffheap(arr, GridUnsafe.BYTE_ARR_OFF, ptr, arr.length); return new BinaryObjectOffheapImpl(binaryContext(marsh), ptr, 0, arr.length); } }
GridUnsafe.putInt(ptr0, len); GridUnsafe.copyHeapOffheap(arr, GridUnsafe.BYTE_ARR_OFF, ptr0 + 4, arr.length);
/** * Writes byte array into memory location. * * @param ptr Pointer. * @param arr Array. */ public void writeBytes(long ptr, byte[] arr) { GridUnsafe.copyHeapOffheap(arr, GridUnsafe.BYTE_ARR_OFF, ptr, arr.length); }
/** * Writes part of byte array into memory location. * * @param ptr Pointer. * @param arr Array. * @param off Offset. * @param len Length. */ public void writeBytes(long ptr, byte[] arr, int off, int len) { GridUnsafe.copyHeapOffheap(arr, GridUnsafe.BYTE_ARR_OFF + off, ptr, len); }
/** {@inheritDoc} */ @Override protected void copyAndShift(Object src, long offset, int len) { GridUnsafe.copyHeapOffheap(src, offset, ptr + pos, len); shift(len); }
/** * Copy source object to the stream shifting position afterwards. * * @param src Source. * @param off Offset. * @param len Length. */ private void copyAndShift(Object src, long off, int len) { ensureCapacity(pos + len); GridUnsafe.copyHeapOffheap(src, off, data + pos, len); shift(len); }