|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.jackrabbit.core.state.MLRUItemStateCache
public class MLRUItemStateCache
An ItemStateCache
implementation that internally uses a
LinkedMap
to maintain a cache of ItemState
objects. The
cache uses a rough estimate of the memory consumption of the cached item
states for calculating the maximum number of entries. The oldest entries
are flushed once the cache size has exceeded a certain limit.
Field Summary | |
---|---|
static int |
DEFAULT_MAX_MEM
default maximum memory to use |
Constructor Summary | |
---|---|
MLRUItemStateCache()
Constructs a new, empty ItemStateCache with a maximum amount
of memory of DEFAULT_MAX_MEM . |
Method Summary | |
---|---|
void |
cache(ItemState state)
Stores the specified ItemState object in the map
using its ItemId as the key. |
void |
dispose()
Informs the cache that it is no longer in use. |
void |
evict(ItemId id)
Removes the ItemState object with the specified id from
this cache if it is present. |
void |
evictAll()
Clears all entries from this cache. |
long |
getAccessCount()
Get the number of accesses (get or set) until resetAccessCount was called. |
long |
getMaxMemorySize()
Get the current limit. |
long |
getMemoryUsed()
Get the amount of used memory. |
boolean |
isCached(ItemId id)
Returns true if this cache contains an ItemState
object with the specified id . |
boolean |
isEmpty()
Returns true if this cache contains no entries. |
void |
resetAccessCount()
Reset the access counter. |
ItemState |
retrieve(ItemId id)
Returns the ItemState object with the specified
id if it is present or null if no entry exists
with that id . |
ItemState[] |
retrieveAll()
Returns all the cached item states. |
void |
setAccessListener(CacheAccessListener listener)
Set the cache access listener. |
void |
setMaxMemorySize(long size)
Set the new memory limit. |
void |
update(ItemId id)
Informs the cache that the item was modified and the cache might need to recalc the items caching weight. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int DEFAULT_MAX_MEM
Constructor Detail |
---|
public MLRUItemStateCache()
ItemStateCache
with a maximum amount
of memory of DEFAULT_MAX_MEM
.
Method Detail |
---|
public boolean isCached(ItemId id)
true
if this cache contains an ItemState
object with the specified id
.
isCached
in interface ItemStateCache
id
- id of ItemState
object whose presence should be
tested.
true
if there's a corresponding cache entry,
otherwise false
.public ItemState retrieve(ItemId id)
ItemState
object with the specified
id
if it is present or null
if no entry exists
with that id
.
retrieve
in interface ItemStateCache
id
- the id of the ItemState
object to be returned.
ItemState
object with the specified
id
or or null
if no entry exists
with that id
public ItemState[] retrieveAll()
retrieveAll
in interface ItemStateCache
public void update(ItemId id)
update
in interface ItemStateCache
id
- the id of the item that was modified.public void cache(ItemState state)
ItemState
object in the map
using its ItemId
as the key.
cache
in interface ItemStateCache
state
- the ItemState
object to cachepublic void evict(ItemId id)
ItemState
object with the specified id from
this cache if it is present.
evict
in interface ItemStateCache
id
- the id of the ItemState
object which should be
removed from this cache.public void evictAll()
evictAll
in interface ItemStateCache
public boolean isEmpty()
true
if this cache contains no entries.
isEmpty
in interface ItemStateCache
true
if this cache contains no entries.public long getAccessCount()
getAccessCount
in interface Cache
public long getMaxMemorySize()
getMaxMemorySize
in interface Cache
public long getMemoryUsed()
getMemoryUsed
in interface Cache
public void resetAccessCount()
resetAccessCount
in interface Cache
public void setMaxMemorySize(long size)
setMaxMemorySize
in interface Cache
size
- the size in bytespublic void setAccessListener(CacheAccessListener listener)
setAccessListener
in interface Cache
listener
- the new listenerpublic void dispose()
dispose
in interface ItemStateCache
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |