@Override protected R getOrCreateToReserve(K key, Data keyData) { return records.applyIfAbsent(key, new ReserveForUpdateFunction(keyData)); }
@Override @SuppressWarnings("unchecked") protected <E extends SamplingEntry> E createSamplingEntry(K key, V value) { return (E) new NearCacheEvictableSamplingEntry(key, value); }
@Override public V tryPublishReserved(K key, V value, long reservationId, boolean deserialize) { checkAvailable(); return updateAndGetReserved(key, value, reservationId, deserialize); }
@Override public void doExpiration() { for (Map.Entry<K, R> entry : records.entrySet()) { K key = entry.getKey(); R value = entry.getValue(); if (isRecordExpired(value)) { invalidate(key); onExpire(key, value); } } }
@Override public void onEvict(K key, R record, boolean wasExpired) { super.onEvict(key, record, wasExpired); nearCacheStats.decrementOwnedEntryMemoryCost(getTotalStorageMemoryCost(key, record)); }
@Override public NearCacheStats getNearCacheStats() { checkAvailable(); return nearCacheStats; }
@Override public R getRecord(K key) { return records.get(key); }
@Override protected HeapNearCacheRecordMap<K, R> createNearCacheRecordMap(NearCacheConfig nearCacheConfig) { return new HeapNearCacheRecordMap<K, R>(serializationService, DEFAULT_INITIAL_CAPACITY); }
@Override public R apply(K key, R reservedRecord) { return updateReservedRecordInternal(key, value, reservedRecord, reservationId); } });
@Override protected boolean containsRecordKey(K key) { return records.containsKey(key); }
protected V toValue(Object obj) { if (obj == null) { return null; } else if (obj instanceof Data) { return dataToValue((Data) obj); } else { return (V) obj; } }
protected Data toData(Object obj) { if (obj == null) { return null; } else if (obj instanceof Data) { return (Data) obj; } else { return valueToData((V) obj); } }
@Override public void doExpiration() { for (Map.Entry<K, R> entry : records.entrySet()) { K key = entry.getKey(); R value = entry.getValue(); if (isRecordExpired(value)) { invalidate(key); onExpire(key, value); } } }
@Override protected R getOrCreateToReserve(K key, Data keyData) { return records.applyIfAbsent(key, new ReserveForUpdateFunction(keyData)); }
@Override public V tryPublishReserved(K key, V value, long reservationId, boolean deserialize) { checkAvailable(); return updateAndGetReserved(key, value, reservationId, deserialize); }
@Override public StaleReadDetector getStaleReadDetector() { checkAvailable(); return staleReadDetector; }
@Override @SuppressWarnings("unchecked") protected <E extends SamplingEntry> E createSamplingEntry(K key, V value) { return (E) new NearCacheEvictableSamplingEntry(key, value); }
@Override public R getRecord(K key) { return records.get(key); }
@Override protected HeapNearCacheRecordMap<K, R> createNearCacheRecordMap(NearCacheConfig nearCacheConfig) { return new HeapNearCacheRecordMap<K, R>(serializationService, DEFAULT_INITIAL_CAPACITY); }
@Override public NearCacheStats getNearCacheStats() { checkAvailable(); return nearCacheStats; }