/** Sets a new value of an entry. Adds newly created entries at the end of the access queue. */ @GuardedBy("this") void setValue(ReferenceEntry<K, V> entry, K key, V value, long now) { ValueReference<K, V> previous = entry.getValueReference(); int weight = map.weigher.weigh(key, value); checkState(weight >= 0, "Weights must be non-negative"); ValueReference<K, V> valueReference = map.valueStrength.referenceValue(this, entry, value, weight); entry.setValueReference(valueReference); recordWrite(entry, weight, now); previous.notifyNewValue(value); }
/** Sets a new value of an entry. Adds newly created entries at the end of the access queue. */ @GuardedBy("this") void setValue(ReferenceEntry<K, V> entry, K key, V value, long now) { ValueReference<K, V> previous = entry.getValueReference(); int weight = map.weigher.weigh(key, value); checkState(weight >= 0, "Weights must be non-negative"); ValueReference<K, V> valueReference = map.valueStrength.referenceValue(this, entry, value, weight); entry.setValueReference(valueReference); recordWrite(entry, weight, now); previous.notifyNewValue(value); }
/** Sets a new value of an entry. Adds newly created entries at the end of the access queue. */ @GuardedBy("this") void setValue(ReferenceEntry<K, V> entry, K key, V value, long now) { ValueReference<K, V> previous = entry.getValueReference(); int weight = map.weigher.weigh(key, value); checkState(weight >= 0, "Weights must be non-negative"); ValueReference<K, V> valueReference = map.valueStrength.referenceValue(this, entry, value, weight); entry.setValueReference(valueReference); recordWrite(entry, weight, now); previous.notifyNewValue(value); }
@SuppressWarnings("unchecked") private int weighEntry(Entry<?, ?> entry) { return weigher.weigh((K) entry.key, (V) entry.value); }
/** * Get the size of the given value. The default implementation returns the * average memory as configured for this cache. * * @param key the key * @param value the value * @return the size */ protected int sizeOf(K key, V value) { if (weigher == null) { return averageMemory; } return weigher.weigh(key, value); }
/** * Get the size of the given value. The default implementation returns the * average memory as configured for this cache. * * @param key the key * @param value the value * @return the size */ protected int sizeOf(K key, V value) { if (weigher == null) { return averageMemory; } return weigher.weigh(key, value); }
public void inserted(Key id, byte[] value) { int weigh = WEIGHER.weigh(id, value); size.addAndGet(weigh); } }
public void inserted(CacheKey id, byte[] value) { int weigh = WEIGHER.weigh(id, value); size.addAndGet(weigh); } }
@Override public synchronized void put(@NotNull K key, @NotNull RecordId value) { super.loadCount++; records.put(key, value); weight += weigher.weigh(key, value); }
@Override protected boolean removeEldestEntry(Map.Entry<K, RecordId> eldest) { boolean remove = super.size() > size; if (remove) { Default.super.evictionCount++; weight -= weigher.weigh(eldest.getKey(), eldest.getValue()); } return remove; } };
@Override public long estimateCurrentWeight() { if (weigher == null) { return -1; } long size = 0; for (Map.Entry<?, ?> e : cache.asMap().entrySet()) { Object k = e.getKey(); Object v = e.getValue(); size += weigher.weigh(k, v); } return size; }
@Override public long estimateCurrentMemoryWeight() { if (memWeigher == null) { return -1; } long size = 0; for (Map.Entry<?, ?> e : cache.asMap().entrySet()) { Object k = e.getKey(); Object v = e.getValue(); size += memWeigher.weigh(k, v); } return size; }
@Override public long estimateCurrentWeight() { if (weigher == null) { return -1; } long size = 0; for (Map.Entry<?, ?> e : cache.asMap().entrySet()) { Object k = e.getKey(); Object v = e.getValue(); size += weigher.weigh(k, v); } return size; }
@Override public long estimateCurrentWeight() { if (weigher == null) { return -1; } long size = 0; for (Map.Entry<?, ?> e : cache.asMap().entrySet()) { Object k = e.getKey(); Object v = e.getValue(); size += weigher.weigh(k, v) * KB; } return size; } }
@Override public long estimateCurrentMemoryWeight() { if (memWeigher == null) { return -1; } long size = 0; for (Map.Entry<?, ?> e : cache.asMap().entrySet()) { Object k = e.getKey(); Object v = e.getValue(); size += memWeigher.weigh(k, v); } return size; }
@Override public long estimateCurrentMemoryWeight() { if (memWeigher == null) { return -1; } long size = 0; for (Map.Entry<?, ?> e : cache.asMap().entrySet()) { Object k = e.getKey(); Object v = e.getValue(); size += memWeigher.weigh(k, v); } return size; }
@Override public long estimateCurrentWeight() { if (weigher == null) { return -1; } long size = 0; for (Map.Entry<?, ?> e : cache.asMap().entrySet()) { Object k = e.getKey(); Object v = e.getValue(); size += weigher.weigh(k, v) * KB; } return size; } }
@Override public long estimateCurrentWeight() { if (weigher == null) { return -1; } long size = 0; for (Map.Entry<?, ?> e : cache.asMap().entrySet()) { Object k = e.getKey(); Object v = e.getValue(); size += weigher.weigh(k, v) * KB; } return size; } }
@Override public void onRemoval(RemovalNotification<CacheKey, byte[]> notification) { CacheKey key = notification.getKey(); byte[] value = notification.getValue(); int weigh = WEIGHER.weigh(key, value); size.addAndGet(-weigh); }
@Override public void onRemoval(RemovalNotification<Key, byte[]> notification) { Key key = notification.getKey(); byte[] value = notification.getValue(); int weigh = WEIGHER.weigh(key, value); size.addAndGet(-weigh); }