|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectinfo.aduna.gee.publication.servlets.util.MultiLevelExpiringCache
public class MultiLevelExpiringCache
A multilevel maximum size cache. For the moment we implement a maximum of 3 keys. It's easy to extend it. Note: a MultiLevelExpiringCache can only be used with a constant number of keys. Either 1,2,3,4. You can't mix 1,2,3,4 get/put requests!
| Field Summary | |
|---|---|
protected int |
_currentSize
We track the currentsize for efficiency |
protected long |
_insertCount
The insertCount for a new put |
protected int |
_maxSize
The maximum amount of Objects in the cache |
protected long |
_noSaves
The number of protected "young" members of the Cache |
protected HashMap |
_theCache
The cache |
| Constructor Summary | |
|---|---|
MultiLevelExpiringCache(int maxSize)
|
|
MultiLevelExpiringCache(int maxSize,
int noSaves)
Create an expiring cache. |
|
| Method Summary | |
|---|---|
protected void |
_cleanUp()
Called by synchronized method. |
protected void |
_destroy(HashMap map)
|
protected void |
_destroy(info.aduna.gee.publication.servlets.util.MultiLevelExpiringCache.MLEO mleo)
|
protected void |
_destroy(Object o)
Destroy an object or a branch of the tree cache. |
protected info.aduna.gee.publication.servlets.util.MultiLevelExpiringCache.MLEO |
_findEldest(HashMap map,
info.aduna.gee.publication.servlets.util.MultiLevelExpiringCache.MLEO candidate)
Called by synchronized method. |
Object |
_get(Object key1,
Object key2,
Object key3,
Object key4,
boolean unpackMleo)
Get the object for the set of keys. |
protected long |
_priority(info.aduna.gee.publication.servlets.util.MultiLevelExpiringCache.MLEO mleo)
The priority of an MLEO; it determines the sequence in which MLEO's are flushed from the cache. |
protected int |
_recalculateSize(HashMap map)
Called by synchronized method. |
protected boolean |
_removeValue(HashMap parent,
Object keyInParent,
HashMap map,
info.aduna.gee.publication.servlets.util.MultiLevelExpiringCache.MLEO mleo)
Called by synchronized method |
Object |
get(Object key1)
|
Object |
get(Object key1,
Object key2)
|
Object |
get(Object key1,
Object key2,
Object key3)
|
Object |
get(Object key1,
Object key2,
Object key3,
Object key4)
|
void |
put(Object key1,
Object value)
|
void |
put(Object key1,
Object key2,
Object value)
|
void |
put(Object key1,
Object key2,
Object key3,
Object value)
|
void |
put(Object key1,
Object key2,
Object key3,
Object key4,
Object value)
|
void |
remove()
|
void |
remove(Object key1)
|
void |
remove(Object key1,
Object key2)
|
void |
remove(Object key1,
Object key2,
Object key3)
|
void |
remove(Object key1,
Object key2,
Object key3,
Object key4)
Note: e.g. |
int |
size()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected HashMap _theCache
protected int _currentSize
protected long _insertCount
protected int _maxSize
protected long _noSaves
| Constructor Detail |
|---|
public MultiLevelExpiringCache(int maxSize)
public MultiLevelExpiringCache(int maxSize,
int noSaves)
maxSize - the maximum total size of the cachenoSaves - the number of last inserted objects not to be removed when full.| Method Detail |
|---|
public Object get(Object key1)
public Object get(Object key1,
Object key2)
public Object get(Object key1,
Object key2,
Object key3)
public Object get(Object key1,
Object key2,
Object key3,
Object key4)
public Object _get(Object key1,
Object key2,
Object key3,
Object key4,
boolean unpackMleo)
upackMleo - if true return the stored Object, if false return the MLEO itself
public void put(Object key1,
Object value)
public void put(Object key1,
Object key2,
Object value)
public void put(Object key1,
Object key2,
Object key3,
Object value)
public void put(Object key1,
Object key2,
Object key3,
Object key4,
Object value)
public void remove()
public void remove(Object key1)
public void remove(Object key1,
Object key2)
public void remove(Object key1,
Object key2,
Object key3)
public void remove(Object key1,
Object key2,
Object key3,
Object key4)
public int size()
protected int _recalculateSize(HashMap map)
protected void _cleanUp()
protected info.aduna.gee.publication.servlets.util.MultiLevelExpiringCache.MLEO _findEldest(HashMap map,
info.aduna.gee.publication.servlets.util.MultiLevelExpiringCache.MLEO candidate)
protected long _priority(info.aduna.gee.publication.servlets.util.MultiLevelExpiringCache.MLEO mleo)
protected boolean _removeValue(HashMap parent,
Object keyInParent,
HashMap map,
info.aduna.gee.publication.servlets.util.MultiLevelExpiringCache.MLEO mleo)
protected void _destroy(info.aduna.gee.publication.servlets.util.MultiLevelExpiringCache.MLEO mleo)
protected void _destroy(HashMap map)
protected void _destroy(Object o)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||