java.lang.Object
org.activemq.io.util.MemoryBoundedMessageCache
- All Implemented Interfaces:
- MemoryBoundedObject, org.activemq.store.cache.MessageCache
- public class MemoryBoundedMessageCache
- extends java.lang.Object
- implements org.activemq.store.cache.MessageCache, MemoryBoundedObject
A simple cache that stores messages in memory. Cache entries are evicted
when the memoryManager starts to run short on memory (A LRU cache is used).
- Version:
- $Revision: 1.1.1.1 $
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
OBJECT_OVERHEAD
private static final int OBJECT_OVERHEAD
- See Also:
- Constant Field Values
memoryManager
private final MemoryBoundedObjectManager memoryManager
messages
private final java.util.HashMap messages
- msgId -> LRUNode
lruList
private final org.activemq.service.impl.DefaultQueueList lruList
- Ordered list of messageIds recently used at the front
memoryUsedByThisCache
private int memoryUsedByThisCache
growthLimit
private float growthLimit
closed
private boolean closed
MemoryBoundedMessageCache
public MemoryBoundedMessageCache(MemoryBoundedObjectManager memoryManager)
get
public org.activemq.message.ActiveMQMessage get(java.lang.String msgid)
- Gets a message that was previously
put into this object.
- Specified by:
get in interface org.activemq.store.cache.MessageCache
put
public void put(java.lang.String messageID,
org.activemq.message.ActiveMQMessage message)
- Puts a message into the cache.
- Specified by:
put in interface org.activemq.store.cache.MessageCache
removeOldest
private void removeOldest()
isFull
private boolean isFull()
remove
public void remove(java.lang.String messageID)
- Remvoes a message from the cache.
- Specified by:
remove in interface org.activemq.store.cache.MessageCache
incrementMemoryUsed
private void incrementMemoryUsed(org.activemq.message.ActiveMQMessage packet)
decrementMemoryUsed
private void decrementMemoryUsed(org.activemq.message.ActiveMQMessage packet)
getGrowthLimit
public float getGrowthLimit()
setGrowthLimit
public void setGrowthLimit(float growTillFence)
close
public void close()
- Description copied from interface:
org.activemq.store.cache.MessageCache
- Lets a cache know it will not be used any further and that it can release
aquired resources
- Specified by:
close in interface org.activemq.store.cache.MessageCache