org.apache.avalon.excalibur.cache.policy
Class TimeMapLRUPolicy
java.lang.Object
|
+--org.apache.avalon.excalibur.cache.policy.TimeMapLRUPolicy
- All Implemented Interfaces:
- ReplacementPolicy
- public class TimeMapLRUPolicy
- extends java.lang.Object
- implements ReplacementPolicy
TimeMapLRU(Least Recently Used) replacement policy.
Use a TreeMap with logical time to perform LRU selectVictim
operations.
On large cache this implementation should be really faster (since it uses a
log(n) treemap plus an hashmap) than the current LRU implem that is working with a List.
- Author:
- Alexis Agahi
Method Summary |
void |
add(java.lang.Object key)
|
void |
hit(java.lang.Object key)
|
void |
remove(java.lang.Object key)
|
java.lang.Object |
selectVictim()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
m_timeToKeyMap
protected java.util.TreeMap m_timeToKeyMap
m_keyToTimeMap
protected java.util.HashMap m_keyToTimeMap
TimeMapLRUPolicy
public TimeMapLRUPolicy()
hit
public void hit(java.lang.Object key)
- Specified by:
hit
in interface ReplacementPolicy
add
public void add(java.lang.Object key)
- Specified by:
add
in interface ReplacementPolicy
remove
public void remove(java.lang.Object key)
- Specified by:
remove
in interface ReplacementPolicy
selectVictim
public java.lang.Object selectVictim()
- Specified by:
selectVictim
in interface ReplacementPolicy
Copyright © 2001 Apache Jakarta Project. All Rights Reserved.