|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectjdbm.helper.MRU
public class MRU
MRU - Most Recently Used cache policy. Methods are *not* synchronized, so no concurrent access is allowed.
| Field Summary | |
|---|---|
(package private) CacheEntry |
_first
Beginning of linked-list of cache elements. |
(package private) java.util.Hashtable |
_hash
Cached object hashtable |
(package private) CacheEntry |
_last
End of linked-list of cache elements. |
(package private) int |
_max
Maximum number of objects in the cache. |
(package private) java.util.Vector |
listeners
Cache eviction listeners |
| Constructor Summary | |
|---|---|
MRU(int max)
Construct an MRU with a given maximum number of objects. |
|
| Method Summary | |
|---|---|
protected void |
addEntry(CacheEntry entry)
Add a CacheEntry. |
void |
addListener(CachePolicyListener listener)
Add a listener to this cache policy |
java.util.Enumeration |
elements()
Enumerate elements' values in the cache |
java.lang.Object |
get(java.lang.Object key)
Obtain an object in the cache |
protected CacheEntry |
purgeEntry()
Purge least recently used object from the cache |
void |
put(java.lang.Object key,
java.lang.Object value)
Place an object in the cache. |
void |
remove(java.lang.Object key)
Remove an object from the cache |
void |
removeAll()
Remove all objects from the cache |
protected void |
removeEntry(CacheEntry entry)
Remove a CacheEntry from linked list |
void |
removeListener(CachePolicyListener listener)
Remove a listener from this cache policy |
protected void |
touchEntry(CacheEntry entry)
Place entry at the end of linked list -- Most Recently Used |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
java.util.Hashtable _hash
int _max
CacheEntry _first
CacheEntry _last
java.util.Vector listeners
| Constructor Detail |
|---|
public MRU(int max)
| Method Detail |
|---|
public void put(java.lang.Object key,
java.lang.Object value)
throws CacheEvictionException
put in interface CachePolicykey - key for the cached objectvalue - the cached object
CacheEvictionException - propagated if, while evicting objects
to make room for new object, an eviction listener encountered
this problem.public java.lang.Object get(java.lang.Object key)
get in interface CachePolicykey - key the object was cached under
public void remove(java.lang.Object key)
remove in interface CachePolicykey - key the object was stored in the cache under.public void removeAll()
removeAll in interface CachePolicypublic java.util.Enumeration elements()
elements in interface CachePolicypublic void addListener(CachePolicyListener listener)
addListener in interface CachePolicylistener - Listener to add to this policypublic void removeListener(CachePolicyListener listener)
removeListener in interface CachePolicylistener - Listener to remove from this policyprotected void addEntry(CacheEntry entry)
protected void removeEntry(CacheEntry entry)
protected void touchEntry(CacheEntry entry)
protected CacheEntry purgeEntry()
throws CacheEvictionException
CacheEvictionException
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||