/** * @param addr Address. * @param off Offset. * @param v Value. */ public static void putUnsignedByte(long addr, int off, int v) { assert addr > 0 : addr; assert off >= 0; assert v >= 0 && v <= 255; GridUnsafe.putByte(addr + off, (byte) v); }
/** {@inheritDoc} */ @Override protected void writeByteAndShift(byte val) { GridUnsafe.putByte(ptr + pos++, val); }
/** * @param ptr Pointer. * @param v Integer value. */ public void writeByte(long ptr, byte v) { GridUnsafe.putByte(ptr, v); }
/** * @param addr Address. * @param off Offset. * @param v Value. */ public static void putByte(long addr, int off, byte v) { assert addr > 0 : addr; assert off >= 0; GridUnsafe.putByte(addr + off, v); }
/** * @param arr Array. * @param off Offset. * @param val Value. */ public static void writeByte(byte[] arr, int off, byte val) { GridUnsafe.putByte(arr, GridUnsafe.BYTE_ARR_OFF + off, val); }
/** {@inheritDoc} */ @Override public void unsafeWriteByte(byte val) { GridUnsafe.putByte(data + pos++, val); }
/** {@inheritDoc} */ @Override public void unsafeWriteByte(byte val) { GridUnsafe.putByte(ptr + pos++, val); }
/** {@inheritDoc} */ @Override public void unsafeWriteByte(byte val) { GridUnsafe.putByte(data, GridUnsafe.BYTE_ARR_OFF + pos++, val); }
/** {@inheritDoc} */ @Override public void writeByte(byte val) { lastFinished = buf.remaining() >= 1; if (lastFinished) { int pos = buf.position(); GridUnsafe.putByte(heapArr, baseOff + pos, val); buf.position(pos + 1); } }
/** {@inheritDoc} */ @Override public void writeByte(byte val) { lastFinished = buf.remaining() >= 1; if (lastFinished) { int pos = buf.position(); GridUnsafe.putByte(heapArr, baseOff + pos, val); buf.position(pos + 1); } }
/** {@inheritDoc} */ @Override public void writeByte(byte val) { ensureCapacity(pos + 1); GridUnsafe.putByte(data + pos++, val); }
/** * @param arr Array. * @param off Offset. * @param len Length. * @param typeSize Primitive type size in bytes. */ private void writeArrayLE(Object arr, long off, int len, int typeSize) { int pos = buf.position(); for (int i = 0; i < len; i++) { for (int j = 0; j < typeSize; j++) { byte b = GridUnsafe.getByteField(arr, off + arrOff + (typeSize - j - 1)); GridUnsafe.putByte(heapArr, baseOff + pos++, b); } buf.position(pos); arrOff += typeSize; } }
/** {@inheritDoc} */ @Override public void writeByte(int v) throws IOException { requestFreeSize(1); GridUnsafe.putByte(bytes, BYTE_ARR_OFF + off, (byte)v); onWrite(1); }
/** * Test unsafe vs. new. */ private static void testUnsafe() throws InterruptedException { X.println("Testing unsafe..."); int MAX = 1000000; long[] addrs = new long[MAX]; System.gc(); GridTimer t = new GridTimer("unsafe"); int mem = 1024; for (int i = 0; i < MAX; i++) { addrs[i] = GridUnsafe.allocateMemory(mem); GridUnsafe.putByte(addrs[i] + RAND.nextInt(mem), (byte)RAND.nextInt(mem)); v = GridUnsafe.getByte(addrs[i] + RAND.nextInt(mem)); } X.println("Unsafe [time=" + t.stop() + "ms, v=" + v + ']'); Thread.sleep(5000L); for (long l : addrs) GridUnsafe.freeMemory(l); }
/** {@inheritDoc} */ @Override public void unsafeWriteByte(byte val) { GridUnsafe.putByte(ptr + pos++, val); }
/** {@inheritDoc} */ @Override protected void writeByteAndShift(byte val) { GridUnsafe.putByte(ptr + pos++, val); }
/** * @param addr Address. * @param off Offset. * @param v Value. */ public static void putByte(long addr, int off, byte v) { assert addr > 0 : addr; assert off >= 0; GridUnsafe.putByte(addr + off, v); }
/** * @param addr Address. * @param off Offset. * @param v Value. */ public static void putUnsignedByte(long addr, int off, int v) { assert addr > 0 : addr; assert off >= 0; assert v >= 0 && v <= 255; GridUnsafe.putByte(addr + off, (byte) v); }
/** {@inheritDoc} */ @Override public void writeByte(byte val) { lastFinished = buf.remaining() >= 1; if (lastFinished) { int pos = buf.position(); GridUnsafe.putByte(heapArr, baseOff + pos, val); buf.position(pos + 1); } }
/** {@inheritDoc} */ @Override public void writeByte(byte val) { ensureCapacity(pos + 1); GridUnsafe.putByte(data + pos++, val); }