/** * Parse a String containing a human-readable memory size. * * @param configuredMemorySize the String containing a human-readable memory size. * @return the memory size in bytes. * @throws IllegalArgumentException thrown when the configured memory size cannot be parsed. */ public static long parse(String configuredMemorySize) throws IllegalArgumentException { MemorySize size = parseIncludingUnit(configuredMemorySize); return size.calculateMemorySizeInBytes(); }
@Override public boolean containsKey(K key) throws StoreAccessException { checkKey(key); return internalGet(key, false, false) != null; }
public LazyOffHeapValueHolder(long id, ByteBuffer binaryValue, Serializer<V> serializer, long creationTime, long expireTime, long lastAccessTime, WriteContext writeContext) { super(id, creationTime, expireTime); setLastAccessTime(lastAccessTime); this.binaryValue = binaryValue; this.valueSerializer = serializer; this.writeContext = writeContext; this.mode = Mode.ATTACHED; }
@Override public OffHeapStore.Provider create(ServiceCreationConfiguration<OffHeapStore.Provider> configuration) { return new OffHeapStore.Provider(); }
@Override protected void destroyStore(AbstractOffHeapStore<?, ?> store) { OffHeapStore.Provider.close((OffHeapStore<?, ?>) store); } }
@Override public void clear() throws StoreAccessException { try { backingMap().clear(); } catch (RuntimeException re) { throw handleException(re); } }
static void close(final OffHeapStore<?, ?> resource) { EhcacheConcurrentOffHeapClockCache<?, ?> localMap = resource.map; if (localMap != null) { resource.map = null; localMap.destroy(); } }
@Override public ValueHolder<V> computeIfAbsent(final K key, final Function<? super K, ? extends V> mappingFunction) throws StoreAccessException { return internalComputeIfAbsent(key, mappingFunction, false, false); }
@Override public void setInvalidationListener(CachingTier.InvalidationListener<K, V> invalidationListener) { this.invalidationListener = invalidationListener; mapEvictionListener.setInvalidationListener(invalidationListener); }
@Override public V get() { forceDeserialization(); return value; }
public BasicOffHeapValueHolder(long id, V value, long creationTime, long expireTime, long lastAccessTime) { super(id, creationTime, expireTime); setLastAccessTime(lastAccessTime); this.value = value; }
BinaryOffHeapValueHolder(long id, V value, ByteBuffer binaryValue, long creationTime, long expireTime, long lastAccessTime) { super(id, creationTime, expireTime); this.value = value; setLastAccessTime(lastAccessTime); this.binaryValue = binaryValue; }
@Override public Map<K, ValueHolder<V>> bulkCompute(Set<? extends K> keys, Function<Iterable<? extends Map.Entry<? extends K, ? extends V>>, Iterable<? extends Map.Entry<? extends K, ? extends V>>> remappingFunction) throws StoreAccessException { return bulkCompute(keys, remappingFunction, REPLACE_EQUALS_TRUE); }
@Override protected int getMetadata(String key, int mask, EhcacheOffHeapBackingMap<String, String> segment) { return ((EhcacheConcurrentOffHeapClockCache<String, String>) segment).getMetadata(key, mask); } }
@Override public AuthoritativeTier<String, String> newStoreWithExpiry(ExpiryPolicy<? super String, ? super String> expiry, TimeSource timeSource) { return newStore(null, null, expiry, timeSource); }
@Override protected void putPinned(String key, String value, EhcacheOffHeapBackingMap<String, String> segment) { ((EhcacheConcurrentOffHeapClockCache<String, String>) segment).putPinned(key, value); }
@Override protected boolean isPinned(String key, EhcacheOffHeapBackingMap<String, String> segment) { return ((EhcacheConcurrentOffHeapClockCache<String, String>) segment).isPinned(key); }
@Override protected StoreFactory<String, String> getStoreFactory() { return getAuthoritativeTierFactory(); }
@Override public void close(final Store<String, String> store) { OffHeapStore.Provider.close((OffHeapStore)store); } };
@Override public ValueHolder<V> computeIfAbsentAndFault(K key, Function<? super K, ? extends V> mappingFunction) throws StoreAccessException { return internalComputeIfAbsent(key, mappingFunction, true, true); }