|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.jaxfront.core.util.MRUHashtable
public class MRUHashtable
Instances of this class can be used as object cache. Each MCRCache has a certain capacity, the maximum number of objects the cache will hold. When the cache is full and another object is put into the cache, the cache will discard the least recently used object to get place for the new object. The cache will always hold the most recently used objects by updating its internal structure whenever an object is get from the cache or put into the cache. The cache also provides methods for getting the current cache hit rate and fill rate. Like in a hashtable, an MCRCache uses a unique key for each object.
Hashtable| Nested Class Summary | |
|---|---|
class |
MRUHashtable.CacheEntry
For each object in the cache, there is one MCRCacheEntry object encapsulating it. |
| Field Summary | |
|---|---|
static java.util.Comparator |
CACHE_ENTRY_COMPARATOR
|
| Constructor Summary | |
|---|---|
MRUHashtable(int capacity)
Creates a new cache with a given capacity. |
|
| Method Summary | |
|---|---|
void |
clear()
Clears the cache by removing all entries from the cache |
java.lang.Object |
get(java.lang.Object key)
Returns an object from the cache for the given key, or null if there currently is no object in the cache with this key. |
int |
getCapacity()
Returns the capacity of this cache. |
int |
getCurrentSize()
Returns the number of objects currently cached. |
double |
getFillRate()
Returns the fill rate of this cache. |
double |
getHitRate()
Returns the hit rate of this cache. |
java.util.Enumeration |
getKeyEntries()
|
java.lang.Object[] |
getKeyObjects()
|
int |
getSizeInByte()
|
int |
getSlearingInterval()
|
int |
getSurviveTime()
|
boolean |
isEmpty()
Returns true if this cache is empty. |
boolean |
isFull()
Returns true if this cache is full. |
boolean |
isRunning()
|
java.util.Set |
keySet()
|
static void |
main(java.lang.String[] args)
A small sample program for testing this class. |
void |
put(java.lang.Object key,
java.lang.Object obj)
Puts an object into the cache, storing it under the given key. |
void |
put(java.lang.Object key,
java.lang.Object obj,
java.lang.Object context)
|
void |
put(java.lang.Object key,
java.lang.Object obj,
java.lang.Object context,
int surviveTime)
|
void |
remove(java.lang.Object key)
Removes an object from the cache for the given key. |
java.lang.Object |
returnIfUpToDat(java.lang.Object key,
long time)
Returns an object from the cache for the given key, but only if the cache entry is not older than the given timestamp. |
void |
run()
|
void |
setCapacity(int capacity)
Changes the capacity of this cache. |
void |
setPeriodicClear(boolean removePeriodic,
int interval,
int surviveTime)
|
void |
stopPeriodicClear()
|
java.lang.String |
toString()
Returns a String containing information about cache capacity, size, current fill rate and hit rate. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final java.util.Comparator CACHE_ENTRY_COMPARATOR
| Constructor Detail |
|---|
public MRUHashtable(int capacity)
capacity - the maximum number of objects this cache will hold| Method Detail |
|---|
public void clear()
public java.lang.Object get(java.lang.Object key)
key - the key for the object you want to get from this cache
public int getCapacity()
public int getCurrentSize()
public double getFillRate()
public double getHitRate()
public java.util.Enumeration getKeyEntries()
public java.lang.Object[] getKeyObjects()
public int getSizeInByte()
public int getSlearingInterval()
public int getSurviveTime()
public boolean isEmpty()
public boolean isFull()
public boolean isRunning()
public java.util.Set keySet()
public static void main(java.lang.String[] args)
throws java.lang.Exception
java.lang.Exception
public void put(java.lang.Object key,
java.lang.Object obj)
key - the non-null key to store the object underobj - the non-null object to be put into the cache
public void put(java.lang.Object key,
java.lang.Object obj,
java.lang.Object context)
public void put(java.lang.Object key,
java.lang.Object obj,
java.lang.Object context,
int surviveTime)
public void remove(java.lang.Object key)
key - the key for the object you want to remove from this cache
public java.lang.Object returnIfUpToDat(java.lang.Object key,
long time)
key - the key for the object you want to get from this cachetime - the timestamp to check that the cache entry is up to date
public void run()
run in interface java.lang.Runnablepublic void setCapacity(int capacity)
capacity - the maximum number of objects this cache will hold
public void setPeriodicClear(boolean removePeriodic,
int interval,
int surviveTime)
public void stopPeriodicClear()
public java.lang.String toString()
toString in class java.lang.Object
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||