@SuppressWarnings("unchecked") protected V getAtTableOffset(int offset) { IntBuffer entry = ((IntBuffer) hashtable.duplicate().position(offset).limit(offset + ENTRY_SIZE)).slice(); if (isPresent(entry)) { return (V) storageEngine.readValue(readLong(entry, ENCODING)); } else { throw new AssertionError(); } }
@SuppressWarnings("unchecked") protected V getAtTableOffset(int offset) { IntBuffer entry = ((IntBuffer) hashtable.duplicate().position(offset).limit(offset + ENTRY_SIZE)).slice(); if (isPresent(entry)) { return (V) storageEngine.readValue(readLong(entry, ENCODING)); } else { throw new AssertionError(); } }
@Override public void remove() { throw new UnsupportedOperationException(); }
@Override public void remove() { throw new UnsupportedOperationException(); }
public V getValueAndSetMetadata(Object key, int mask, int values) { int safeMask = mask & ~RESERVED_STATUS_BITS; freePendingTables(); int hash = key.hashCode(); hashtable.position(indexFor(spread(hash))); int limit = reprobeLimit(); for (int i = 0; i < limit; i++) { if (!hashtable.hasRemaining()) { hashtable.rewind(); } IntBuffer entry = (IntBuffer) hashtable.slice().limit(ENTRY_SIZE); long encoding = readLong(entry, ENCODING); if (isTerminating(entry)) { return null; } else if (isPresent(entry) && keyEquals(key, hash, encoding, entry.get(KEY_HASHCODE))) { hit(entry); entry.put(STATUS, (entry.get(STATUS) & ~safeMask) | (values & safeMask)); @SuppressWarnings("unchecked") V result = (V) storageEngine.readValue(readLong(entry, ENCODING)); return result; } else { hashtable.position(hashtable.position() + ENTRY_SIZE); } } return null; }
public V getValueAndSetMetadata(Object key, int mask, int values) { int safeMask = mask & ~RESERVED_STATUS_BITS; freePendingTables(); int hash = key.hashCode(); hashtable.position(indexFor(spread(hash))); int limit = reprobeLimit(); for (int i = 0; i < limit; i++) { if (!hashtable.hasRemaining()) { hashtable.rewind(); } IntBuffer entry = (IntBuffer) hashtable.slice().limit(ENTRY_SIZE); long encoding = readLong(entry, ENCODING); if (isTerminating(entry)) { return null; } else if (isPresent(entry) && keyEquals(key, hash, encoding, entry.get(KEY_HASHCODE))) { hit(entry); entry.put(STATUS, (entry.get(STATUS) & ~safeMask) | (values & safeMask)); @SuppressWarnings("unchecked") V result = (V) storageEngine.readValue(readLong(entry, ENCODING)); return result; } else { hashtable.position(hashtable.position() + ENTRY_SIZE); } } return null; }
@SuppressWarnings("unchecked") @Override public V get(Object key) { int hash = key.hashCode(); if (size == 0) { return null; } IntBuffer view = (IntBuffer) hashtable.duplicate().position(indexFor(spread(hash))); int limit = reprobeLimit(); for (int i = 0; i < limit; i++) { if (!view.hasRemaining()) { view.rewind(); } IntBuffer entry = (IntBuffer) view.slice().limit(ENTRY_SIZE); if (isTerminating(entry)) { return null; } else if (isPresent(entry) && keyEquals(key, hash, readLong(entry, ENCODING), entry.get(KEY_HASHCODE))) { hit(entry); return (V) storageEngine.readValue(readLong(entry, ENCODING)); } else { view.position(view.position() + ENTRY_SIZE); } } return null; }
} else if (isPresent(entry) && hash == entry.get(KEY_HASHCODE)) { @SuppressWarnings("unchecked") V removedValue = (V) storageEngine.readValue(readLong(entry, ENCODING)); @SuppressWarnings("unchecked") K removedKey = (K) storageEngine.readKey(readLong(entry, ENCODING), hash);
} else if (isPresent(entry) && hash == entry.get(KEY_HASHCODE)) { @SuppressWarnings("unchecked") V removedValue = (V) storageEngine.readValue(readLong(entry, ENCODING)); @SuppressWarnings("unchecked") K removedKey = (K) storageEngine.readKey(readLong(entry, ENCODING), hash);
@SuppressWarnings("unchecked") @Override public V get(Object key) { int hash = key.hashCode(); if (size == 0) { return null; } IntBuffer view = (IntBuffer) hashtable.duplicate().position(indexFor(spread(hash))); int limit = reprobeLimit(); for (int i = 0; i < limit; i++) { if (!view.hasRemaining()) { view.rewind(); } IntBuffer entry = (IntBuffer) view.slice().limit(ENTRY_SIZE); if (isTerminating(entry)) { return null; } else if (isPresent(entry) && keyEquals(key, hash, readLong(entry, ENCODING), entry.get(KEY_HASHCODE))) { hit(entry); return (V) storageEngine.readValue(readLong(entry, ENCODING)); } else { view.position(view.position() + ENTRY_SIZE); } } return null; }
@SuppressWarnings("unchecked") MetadataTuple<V> tuple = metadataTuple( (V) storageEngine.readValue(readLong(laterEntry, ENCODING)), laterEntry.get(STATUS) & ~RESERVED_STATUS_BITS); return tuple; @SuppressWarnings("unchecked") MetadataTuple<V> tuple = metadataTuple( (V) storageEngine.readValue(readLong(entry, ENCODING)), entry.get(STATUS) & ~RESERVED_STATUS_BITS); return tuple;
@SuppressWarnings("unchecked") MetadataTuple<V> tuple = metadataTuple( (V) storageEngine.readValue(readLong(laterEntry, ENCODING)), laterEntry.get(STATUS) & ~RESERVED_STATUS_BITS); return tuple; @SuppressWarnings("unchecked") MetadataTuple<V> tuple = metadataTuple( (V) storageEngine.readValue(readLong(entry, ENCODING)), entry.get(STATUS) & ~RESERVED_STATUS_BITS); return tuple;
break; } else if (isPresent(laterEntry) && keyEquals(key, hash, readLong(laterEntry, ENCODING), laterEntry.get(KEY_HASHCODE))) { V old = (V) storageEngine.readValue(readLong(laterEntry, ENCODING)); storageEngine.freeMapping(readLong(laterEntry, ENCODING), laterEntry.get(KEY_HASHCODE), false); long oldEncoding = readLong(laterEntry, ENCODING); storageEngine.attachedMapping(readLong(newEntry, ENCODING), hash, metadata); storageEngine.invalidateCache(); V old = (V) storageEngine.readValue(readLong(entry, ENCODING)); storageEngine.freeMapping(readLong(entry, ENCODING), entry.get(KEY_HASHCODE), false); long oldEncoding = readLong(entry, ENCODING);
break; } else if (isPresent(laterEntry) && keyEquals(key, hash, readLong(laterEntry, ENCODING), laterEntry.get(KEY_HASHCODE))) { V old = (V) storageEngine.readValue(readLong(laterEntry, ENCODING)); storageEngine.freeMapping(readLong(laterEntry, ENCODING), laterEntry.get(KEY_HASHCODE), false); long oldEncoding = readLong(laterEntry, ENCODING); storageEngine.attachedMapping(readLong(newEntry, ENCODING), hash, metadata); storageEngine.invalidateCache(); V old = (V) storageEngine.readValue(readLong(entry, ENCODING)); storageEngine.freeMapping(readLong(entry, ENCODING), entry.get(KEY_HASHCODE), false); long oldEncoding = readLong(entry, ENCODING);
@SuppressWarnings("unchecked") MetadataTuple<V> existingValue = metadataTuple( (V) storageEngine.readValue(existingEncoding), existingStatus & ~RESERVED_STATUS_BITS); MetadataTuple<V> result = remappingFunction.apply(key, existingValue);
@SuppressWarnings("unchecked") MetadataTuple<V> existingValue = metadataTuple( (V) storageEngine.readValue(existingEncoding), existingStatus & ~RESERVED_STATUS_BITS); MetadataTuple<V> result = remappingFunction.apply(key, existingValue);
break; } else if (isPresent(laterEntry) && keyEquals(key, hash, readLong(laterEntry, ENCODING), laterEntry.get(KEY_HASHCODE))) { V old = (V) storageEngine.readValue(readLong(laterEntry, ENCODING)); storageEngine.freeMapping(readLong(laterEntry, ENCODING), laterEntry.get(KEY_HASHCODE), false); long oldEncoding = readLong(laterEntry, ENCODING); storageEngine.attachedMapping(readLong(newEntry, ENCODING), hash, metadata); storageEngine.invalidateCache(); V old = (V) storageEngine.readValue(readLong(entry, ENCODING)); storageEngine.freeMapping(readLong(entry, ENCODING), entry.get(KEY_HASHCODE), false); long oldEncoding = readLong(entry, ENCODING);
break; } else if (isPresent(laterEntry) && keyEquals(key, hash, readLong(laterEntry, ENCODING), laterEntry.get(KEY_HASHCODE))) { V old = (V) storageEngine.readValue(readLong(laterEntry, ENCODING)); storageEngine.freeMapping(readLong(laterEntry, ENCODING), laterEntry.get(KEY_HASHCODE), false); long oldEncoding = readLong(laterEntry, ENCODING); storageEngine.attachedMapping(readLong(newEntry, ENCODING), hash, metadata); storageEngine.invalidateCache(); V old = (V) storageEngine.readValue(readLong(entry, ENCODING)); storageEngine.freeMapping(readLong(entry, ENCODING), entry.get(KEY_HASHCODE), false); long oldEncoding = readLong(entry, ENCODING);
@SuppressWarnings("unchecked") MetadataTuple<V> existingValue = metadataTuple( (V) storageEngine.readValue(encoding), laterEntry.get(STATUS) & ~RESERVED_STATUS_BITS); MetadataTuple<V> result = remappingFunction.apply(key, existingValue); @SuppressWarnings("unchecked") MetadataTuple<V> existingTuple = metadataTuple( (V) storageEngine.readValue(existingEncoding), existingStatus & ~RESERVED_STATUS_BITS); MetadataTuple<V> result = remappingFunction.apply(key, existingTuple);
@SuppressWarnings("unchecked") MetadataTuple<V> existingValue = metadataTuple( (V) storageEngine.readValue(encoding), laterEntry.get(STATUS) & ~RESERVED_STATUS_BITS); MetadataTuple<V> result = remappingFunction.apply(key, existingValue); @SuppressWarnings("unchecked") MetadataTuple<V> existingTuple = metadataTuple( (V) storageEngine.readValue(existingEncoding), existingStatus & ~RESERVED_STATUS_BITS); MetadataTuple<V> result = remappingFunction.apply(key, existingTuple);