Modifier and Type | Field and Description |
---|---|
protected SizedMap |
cacheMap
The map for non-expired and non-pinned references.
|
protected Map |
pinnedMap
The set of objects pinned into the cache.
|
protected SizedMap |
softMap
The map for expired references.
|
Constructor and Description |
---|
CacheMap()
Create a non-LRU (and therefore highly concurrent) cache map with a
size of 1000.
|
CacheMap(boolean lru)
Create a cache map with a size of 1000.
|
CacheMap(boolean lru,
int max)
Create a cache map with the given properties.
|
CacheMap(boolean lru,
int max,
int size,
float load)
Deprecated.
use
CacheMap(boolean, int, int, float, int)
instead. |
CacheMap(boolean lru,
int max,
int size,
float load,
int concurrencyLevel)
Create a cache map with the given properties.
|
Modifier and Type | Method and Description |
---|---|
protected void |
cacheMapOverflowRemoved(Object key,
Object value)
Called from
SizedMap.overflowRemoved(java.lang.Object, java.lang.Object) in the cache map. |
void |
clear()
Removes pinned objects as well as unpinned ones.
|
boolean |
containsKey(Object key) |
boolean |
containsValue(Object val) |
protected void |
entryAdded(Object key,
Object value)
Invoked when an entry is added to the cache.
|
protected void |
entryRemoved(Object key,
Object value,
boolean expired)
Invoked when a key-value pair is evicted from this data
structure.
|
Set |
entrySet() |
Object |
get(Object key) |
int |
getCacheSize()
The maximum number of hard references to maintain, or -1 for no limit.
|
Set |
getPinnedKeys()
The keys pinned into the map.
|
int |
getSoftReferenceSize()
The maximum number of soft references to maintain, or -1 for no limit.
|
boolean |
isEmpty() |
boolean |
isLRU()
Whether this cache map uses LRU eviction.
|
Set |
keySet() |
boolean |
pin(Object key)
Locks the given key and its value into the map.
|
protected Object |
put(Map map,
Object key,
Object value)
Put the given entry into the given map.
|
Object |
put(Object key,
Object value) |
void |
putAll(Map map) |
void |
putAll(Map map,
boolean replaceExisting) |
void |
readLock()
Acquire read lock.
|
void |
readUnlock()
Release read lock.
|
protected Object |
remove(Map map,
Object key)
Remove the given key from the given map.
|
Object |
remove(Object key)
If
key is pinned into the cache, the pin is
cleared and the object is removed. |
void |
setCacheSize(int size)
The maximum number of hard references to maintain, or -1 for no limit.
|
void |
setSoftReferenceSize(int size)
The maximum number of soft references to maintain, or -1 for no limit.
|
int |
size() |
protected void |
softMapOverflowRemoved(Object key,
Object value)
Called from
SizedMap.overflowRemoved(java.lang.Object, java.lang.Object) in the soft map. |
protected void |
softMapValueExpired(Object key)
Called when a value expires from the soft map.
|
String |
toString() |
boolean |
unpin(Object key)
Undo a pinning.
|
Collection |
values() |
void |
writeLock()
Acquire write lock.
|
void |
writeUnlock()
Release write lock.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
protected final SizedMap cacheMap
protected final SizedMap softMap
protected final Map pinnedMap
public CacheMap()
public CacheMap(boolean lru)
lru
- if true, create a LRU cache map otherwise a non-LRU map will be created.public CacheMap(boolean lru, int max)
@Deprecated public CacheMap(boolean lru, int max, int size, float load)
CacheMap(boolean, int, int, float, int)
instead.public CacheMap(boolean lru, int max, int size, float load, int concurrencyLevel)
protected void cacheMapOverflowRemoved(Object key, Object value)
SizedMap.overflowRemoved(java.lang.Object, java.lang.Object)
in the cache map.protected void softMapOverflowRemoved(Object key, Object value)
SizedMap.overflowRemoved(java.lang.Object, java.lang.Object)
in the soft map.protected void softMapValueExpired(Object key)
protected Object put(Map map, Object key, Object value)
protected Object remove(Map map, Object key)
public void readLock()
public void readUnlock()
public void writeLock()
public void writeUnlock()
public boolean isLRU()
public void setCacheSize(int size)
public int getCacheSize()
public void setSoftReferenceSize(int size)
public int getSoftReferenceSize()
public Set getPinnedKeys()
public boolean pin(Object key)
public boolean unpin(Object key)
protected void entryRemoved(Object key, Object value, boolean expired)
expired
set to
true
when an object is dropped because of space
requirements or through garbage collection of soft references.
It is invoked with expired
set to false
when an object is explicitly removed via the remove(java.util.Map, java.lang.Object)
or
clear()
methods. This may be invoked more than once for a
given entry.value
- may be null if the value was a soft reference that has
been GCdprotected void entryAdded(Object key, Object value)
public void putAll(Map map, boolean replaceExisting)
public Object remove(Object key)
key
is pinned into the cache, the pin is
cleared and the object is removed.public void clear()
public boolean containsKey(Object key)
containsKey
in interface Map
public boolean containsValue(Object val)
containsValue
in interface Map
public Collection values()
Copyright © 2006–2020 Apache Software Foundation. All rights reserved.