/** * Reads address of next queue node. * * @param qAddr Queue node address. * @return Address of next queue node. */ private long next(long qAddr) { return mem.readLong(qAddr + 19); }
/** * @throws Exception If failed. */ @Test public void testLong() throws Exception { GridUnsafeMemory mem = new GridUnsafeMemory(64); int size = 32; long addr = mem.allocate(size); try { long l1 = 123456; mem.writeLong(addr, l1); long l2 = mem.readLong(addr); assertEquals(l1, l2); long l3 = 654321; mem.writeLongVolatile(addr, l3); long l4 = 666666; assertTrue(mem.casLong(addr, l3, l4)); assertFalse(mem.casLong(addr, l3, 0)); assertEquals(l4, mem.readLongVolatile(addr)); } finally { mem.release(addr, size); } }
/** * @param meta Meta pointer. * @return Key pointer. */ private long key(long meta) { return mem.readLong(meta); }
/** * @param meta Meta pointer. * @return Last visited value pointer. */ private long lastVisitedValue(long meta) { return mem.readLong(meta + 16); }
/** * @param ptr Pointer. * @param mem Memory. * @return Queue address. */ static long queueAddress(long ptr, GridUnsafeMemory mem) { return mem.readLong(ptr + HEADER_QUEUE_ADDR_OFF); }
/** * Reads address of previous queue node. * * @param qAddr Queue node address. * @return Address of previous queue node. */ private long previous(long qAddr) { return mem.readLong(qAddr + 11); }
/** * @param meta Meta pointer. * @return Collision pointer. */ protected long collision(long meta) { return mem.readLong(meta + 24); }
/** * @param meta Meta pointer. * @return Last visited value pointer. */ private long lastVisitedValue(long meta) { return mem.readLong(meta + 32); }
/** * Reads address of entry. * * @param qAddr Queue node address. * @return Address of entry. */ private long entry(long qAddr) { return mem.readLong(qAddr + 27); }
/** * @param meta Meta pointer. * @return Key pointer. */ protected long key(long meta) { return mem.readLong(meta + 8); }
/** * @param meta Meta pointer. * @return Value pointer. */ protected long value(long meta) { return mem.readLong(meta + 16); } /**
/** * Reads first entry address. * * @param binAddr Pointer. * @param mem Memory. * @return addr Address. */ static long first(long binAddr, GridUnsafeMemory mem) { return mem.readLong(binAddr); } }
/** * @param ptr Pointer. * @param mem Memory. * @return Next address. */ static long nextAddress(long ptr, GridUnsafeMemory mem) { return mem.readLong(ptr + HEADER_NEXT_ADDR_OFF); }
/** * @param valPtr Value page pointer. * @return Next value page pointer. */ protected long nextValue(long valPtr) { return mem.readLong(valPtr); }
/** {@inheritDoc} */ @Override public long readLong() throws IOException { return mem.readLong(move(8)); }
/** * @param ptr Pointer. * @param mem Memory. * @return Next address. */ static long nextAddress(long ptr, GridUnsafeMemory mem) { return mem.readLong(ptr + HEADER_NEXT_ADDR_OFF); }
/** * Reads address of previous queue node. * * @param qAddr Queue node address. * @return Address of previous queue node. */ private long previous(long qAddr) { return mem.readLong(qAddr + 11); }
/** * Reads address of entry. * * @param qAddr Queue node address. * @return Address of entry. */ private long entry(long qAddr) { return mem.readLong(qAddr + 27); }
/** * Reads first entry address. * * @param binAddr Pointer. * @param mem Memory. * @return addr Address. */ static long first(long binAddr, GridUnsafeMemory mem) { return mem.readLong(binAddr); } }
/** * Reads address of next queue node. * * @param qAddr Queue node address. * @return Address of next queue node. */ private long next(long qAddr) { return mem.readLong(qAddr + 19); }