|
CoherenceTM v3.3 Copyright© 2000-2007 by Oracle Corporation |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.tangosol.util.Base
com.tangosol.util.AbstractKeyBasedMap
com.tangosol.util.AbstractKeySetBasedMap
com.tangosol.net.cache.SerializationMap
com.tangosol.net.cache.AbstractSerializationCache
com.tangosol.net.cache.SerializationCache
public class SerializationCache
A version of SerializationMap that implements an LRU policy.
This implementation is partially thread safe. It assumes that multiple threads will not be accessing the same keys at the same time, nor would any other thread be accessing this cache while a clear() operation were going on, for example. In other words, this implementation assumes that access to this cache is either single-threaded or gated through an object like WrapperConcurrentMap.
The primary reason why SerializationCache is a sub-class of SerializationMap instead of combining their functionality is that SerializationMap represents a passive store, and thus does not implement the ObservableMap interface, while SerializationCache represents an active store, and thus clients of it would have to always handle potential events, even if it were not size-limited.
Nested Class Summary | |
---|---|
protected class |
SerializationCache.EntryAttributes
A class that holds on to the expiry time and touch order for an entry. |
Nested classes/interfaces inherited from class com.tangosol.util.AbstractKeySetBasedMap |
---|
AbstractKeySetBasedMap.EntrySet, AbstractKeySetBasedMap.KeyIterator, AbstractKeySetBasedMap.KeySet, AbstractKeySetBasedMap.ValuesCollection |
Nested classes/interfaces inherited from interface java.util.Map |
---|
Map.Entry |
Field Summary |
---|
Fields inherited from interface com.tangosol.net.cache.CacheMap |
---|
EXPIRY_DEFAULT, EXPIRY_NEVER |
Constructor Summary | |
---|---|
SerializationCache(BinaryStore store,
int cMax)
Construct a SerializationCache on top of a BinaryStore. |
|
SerializationCache(BinaryStore store,
int cMax,
boolean fBinaryMap)
Construct a SerializationCache on top of a BinaryStore. |
|
SerializationCache(BinaryStore store,
int cMax,
ClassLoader loader)
Construct a SerializationCache on top of a BinaryStore. |
Method Summary | |
---|---|
protected void |
checkExpiry()
Make sure that the cache does not contain expired items. |
protected void |
checkSize()
Make sure the size of the cache isn't too big. |
void |
clear()
Clear all key/value mappings. |
boolean |
containsKey(Object oKey)
Returns true if this map contains a mapping for the specified key. |
boolean |
containsValue(Object oValue)
Returns true if this Map maps one or more keys to the specified value. |
void |
evict()
Flush items that have expired. |
void |
evict(Object oKey)
Evict the specified item from the cache. |
void |
flush()
Deprecated. use evict() |
Object |
get(Object oKey)
Returns the value to which this map maps the specified key. |
protected String |
getDescription()
Assemble a human-readable description. |
protected LongArray |
getExpiryArray()
Get the Expiry data structure. |
int |
getExpiryDelay()
Determine the default "time to live" for cache entries. |
protected LongArray |
getLruArray()
Get the LRU data structure. |
int |
getMaximumSize()
Determine the maximum number of entries that the cache will hold. |
protected long |
getTouchCounter()
Determine the next value from the touch counter. |
SerializationCache.EntryAttributes |
instantiateEntryAttributes(SerializationCache.EntryAttributes attrOrig,
long ldtExpires,
long nTouch)
Factory pattern: Construct an attribute holder for an entry. |
boolean |
isEmpty()
Returns true if this map contains no key-value mappings. |
Object |
put(Object oKey,
Object oValue)
Associates the specified value with the specified key in this map. |
Object |
put(Object oKey,
Object oValue,
long cMillis)
Associates the specified value with the specified key in this cache. |
void |
putAll(Map map)
Copies all of the mappings from the specified map to this map. The effect of this call is equivalent to that of calling AbstractKeyBasedMap.put(java.lang.Object, java.lang.Object)
on this map once for each mapping in the passed map. The behavior of
this operation is unspecified if the passed map is modified while the
operation is in progress. |
protected void |
registerKey(Object oKey)
Register a new key for the SerializationMap. |
protected void |
registerKey(Object oKey,
int cMillis)
Register a new key for the SerializationMap. |
Object |
remove(Object oKey)
Removes the mapping for this key from this map if present. Expensive: updates both the underlying cache and the local cache. |
protected boolean |
removeBlind(Object oKey)
Removes the mapping for this key from this map if present. This method exists to allow sub-classes to optmiize remove functionalitly for situations in which the original value is not required. |
protected void |
setBinaryStore(BinaryStore store)
Configures the BinaryStore that this map will use for its storage. |
void |
setExpiryDelay(int cMillis)
Specify the "time to live" for cache entries. |
void |
setMaximumSize(int cMax)
Change the maximum number of entries that the cache will hold. |
int |
size()
Returns the number of key-value mappings in this map. |
String |
toString()
Returns a string representation of this Map. The string representation consists of a list of key-value mappings in the order returned by the Map's entrySet view's iterator, enclosed in braces ("{}"). Adjacent mappings are separated by the characters ", " (comma and space). Each key-value mapping is rendered as the key followed by an equals sign ("=") followed by the associated value. Keys and values are converted to strings as by String.valueOf(Object). |
protected void |
touch(Object oKey)
Touch an object to pop it to the top of the LRU |
protected void |
unregisterKey(Object oKey)
Unregister a key from the SerializationMap. |
Methods inherited from class com.tangosol.net.cache.AbstractSerializationCache |
---|
addMapListener, addMapListener, addMapListener, dispatchEvent, dispatchPendingEvent, getMapListenerSupport, hasListeners, removeMapListener, removeMapListener, removeMapListener |
Methods inherited from class com.tangosol.net.cache.SerializationMap |
---|
eraseStore, fromBinary, getBinaryStore, getCacheStatistics, getClassLoader, getInternalKeySet, getKeyMap, isBinaryMap, setBinaryMap, setClassLoader, toBinary |
Methods inherited from class com.tangosol.util.AbstractKeySetBasedMap |
---|
instantiateEntrySet, instantiateKeyIterator, instantiateKeySet, instantiateValues, isInternalKeySetIteratorMutable, iterateKeys |
Methods inherited from class com.tangosol.util.AbstractKeyBasedMap |
---|
clone, entrySet, equals, getAll, hashCode, keySet, values |
Methods inherited from interface com.tangosol.net.cache.CacheMap |
---|
getAll |
Methods inherited from interface com.tangosol.util.ObservableMap |
---|
addMapListener, addMapListener, addMapListener, removeMapListener, removeMapListener, removeMapListener |
Methods inherited from interface java.util.Map |
---|
entrySet, equals, hashCode, keySet, values |
Constructor Detail |
---|
public SerializationCache(BinaryStore store, int cMax)
store
- the BinaryStore to use to write the serialized objects tocMax
- the maximum number of items to store in the binary storepublic SerializationCache(BinaryStore store, int cMax, ClassLoader loader)
store
- the BinaryStore to use to write the serialized objects tocMax
- the maximum number of items to store in the binary storeloader
- the ClassLoader to use for deserializationpublic SerializationCache(BinaryStore store, int cMax, boolean fBinaryMap)
store
- the BinaryStore to use to write the serialized objects tocMax
- the maximum number of items to store in the binary storefBinaryMap
- true indicates that this map will only manage
binary keys and valuesMethod Detail |
---|
public void clear()
clear
in interface Map
clear
in class AbstractSerializationCache
public boolean containsKey(Object oKey)
containsKey
in interface Map
containsKey
in class AbstractKeySetBasedMap
public boolean containsValue(Object oValue)
containsValue
in interface Map
containsValue
in class SerializationMap
public Object get(Object oKey)
get
in interface Map
get
in class SerializationMap
oKey
- the key object
public boolean isEmpty()
isEmpty
in interface Map
isEmpty
in class AbstractKeySetBasedMap
public Object put(Object oKey, Object oValue)
put
in interface CacheMap
put
in interface Map
put
in class AbstractSerializationCache
oKey
- key with which the specified value is to be associatedoValue
- value to be associated with the specified key
public void putAll(Map map)
AbstractKeyBasedMap.put(java.lang.Object, java.lang.Object)
on this map once for each mapping in the passed map. The behavior of
this operation is unspecified if the passed map is modified while the
operation is in progress.
putAll
in interface Map
putAll
in class AbstractSerializationCache
map
- the Map containing the key/value pairings to put into this
Mappublic Object remove(Object oKey)
remove
in interface Map
remove
in class AbstractSerializationCache
oKey
- key whose mapping is to be removed from the map
public int size()
size
in interface Map
size
in class AbstractKeySetBasedMap
protected boolean removeBlind(Object oKey)
removeBlind
in class AbstractSerializationCache
oKey
- key whose mapping is to be removed from the map
public Object put(Object oKey, Object oValue, long cMillis)
CacheMap.put(Object oKey, Object oValue)
method allows the caller to specify an expiry (or "time to live")
for the cache entry.
put
in interface CacheMap
oKey
- key with which the specified value is to be associatedoValue
- value to be associated with the specified keycMillis
- the number of milliseconds until the cache entry will
expire, also referred to as the entry's "time to live";
pass CacheMap.EXPIRY_DEFAULT
to use the cache's default
time-to-live setting; pass CacheMap.EXPIRY_NEVER
to
indicate that the cache entry should never expire; this
milliseconds value is not a date/time value, such
as is returned from System.currentTimeMillis()
public void flush()
evict()
public void evict()
evict
in class AbstractSerializationCache
public void evict(Object oKey)
oKey
- the key of the entry to evictpublic String toString()
toString
in class SerializationMap
protected void setBinaryStore(BinaryStore store)
setBinaryStore
in class SerializationMap
store
- the BinaryStore to usepublic int getMaximumSize()
public void setMaximumSize(int cMax)
cMax
- the new maximum number of entries that the cache will holdpublic int getExpiryDelay()
public void setExpiryDelay(int cMillis)
cMillis
- the number of milliseconds that cache entries will
live, or zero to disable automatic expiryprotected long getTouchCounter()
protected LongArray getLruArray()
protected LongArray getExpiryArray()
protected String getDescription()
getDescription
in class AbstractSerializationCache
protected void registerKey(Object oKey)
registerKey
in class SerializationMap
oKey
- the key that has been added to the mapprotected void registerKey(Object oKey, int cMillis)
oKey
- the key that has been added to the mapcMillis
- the TTL value (in milliseconds) for the entryprotected void touch(Object oKey)
oKey
- the key of the object to touchprotected void unregisterKey(Object oKey)
unregisterKey
in class SerializationMap
oKey
- the key that has been removed from the mapprotected void checkSize()
protected void checkExpiry()
public SerializationCache.EntryAttributes instantiateEntryAttributes(SerializationCache.EntryAttributes attrOrig, long ldtExpires, long nTouch)
attrOrig
- the previous attributes for this entry, if anyldtExpires
- the date/time at which the entry expires, or zeronTouch
- the touch counter assigned to the entry
|
CoherenceTM v3.3 Copyright© 2000-2007 by Oracle Corporation |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |