Package org.red5.cache.impl
Class CacheImpl
java.lang.Object
org.red5.cache.impl.CacheImpl
- All Implemented Interfaces:
ICacheStore,Aware,ApplicationContextAware
Provides an implementation of an object cache.
- Author:
- The Red5 Project, Paul Gregoire ([email protected])
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static ApplicationContextprivate static final Map<String,SoftReference<? extends ICacheable>> private static AtomicLongprivate static AtomicLongprivate static intprivate static CacheImplprotected static org.slf4j.Logger -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateThis constructor helps to ensure that we are singleton. -
Method Summary
Modifier and TypeMethodDescriptionvoiddestroy()Allows for cleanup of a cache implementation.Return a cached object with the given name.static ApplicationContextGetter for property 'applicationContext'.static longGetter for property 'cacheHit'.static longGetter for property 'cacheMiss'.static CacheImplReturns the instance of this class.Return iterator over the names of all already loaded objects in the storage.Iterator<SoftReference<? extends ICacheable>>Return iterator over the already loaded objects in the storage.voidinit()booleanOffer an object to the cache with an associated key.booleanvoidPuts an object in the cache with the associated key.protected voidput(String name, ICacheable obj) booleanDelete the cached object with the given name.booleanremove(ICacheable obj) Delete the passed cached object.voidsetApplicationContext(ApplicationContext context) voidsetMaxEntries(int max) Sets the maximum number of entries for the cache.
-
Field Details
-
log
protected static org.slf4j.Logger log -
instance
-
CACHE
-
registry
-
capacity
private static int capacity -
cacheHit
-
cacheMiss
-
applicationContext
-
-
Constructor Details
-
CacheImpl
private CacheImpl()This constructor helps to ensure that we are singleton.
-
-
Method Details
-
setApplicationContext
- Specified by:
setApplicationContextin interfaceApplicationContextAware- Throws:
BeansException
-
getApplicationContext
Getter for property 'applicationContext'.- Returns:
- Value for property 'applicationContext'.
-
getInstance
Returns the instance of this class.- Returns:
- instance of this class
-
init
public void init() -
getObjectNames
Return iterator over the names of all already loaded objects in the storage.- Specified by:
getObjectNamesin interfaceICacheStore- Returns:
- iterator over all objects names
-
getObjects
Return iterator over the already loaded objects in the storage.- Specified by:
getObjectsin interfaceICacheStore- Returns:
- iterator over all objects
-
offer
-
offer
Offer an object to the cache with an associated key. If the named object exists in cache, it will not be accepted.- Specified by:
offerin interfaceICacheStore- Parameters:
name- string name representing the objectobj- cacheable object- Returns:
- true if accepted, false otherwise
-
put
Puts an object in the cache with the associated key.- Specified by:
putin interfaceICacheStore- Parameters:
name- string name representing the objectobj- cacheable object
-
put
-
get
Return a cached object with the given name.- Specified by:
getin interfaceICacheStore- Parameters:
name- the name of the object to return- Returns:
- the object or
nullif no such object was found
-
remove
Delete the passed cached object.- Specified by:
removein interfaceICacheStore- Parameters:
obj- the object to delete- Returns:
- true if was removed; false it wasn't in cache to begin with
-
remove
Delete the cached object with the given name.- Specified by:
removein interfaceICacheStore- Parameters:
name- the name of the object to delete- Returns:
- true if was removed; false it wasn't in cache to begin with
-
getCacheHit
public static long getCacheHit()Getter for property 'cacheHit'.- Returns:
- Value for property 'cacheHit'.
-
getCacheMiss
public static long getCacheMiss()Getter for property 'cacheMiss'.- Returns:
- Value for property 'cacheMiss'.
-
setMaxEntries
public void setMaxEntries(int max) Sets the maximum number of entries for the cache.- Specified by:
setMaxEntriesin interfaceICacheStore- Parameters:
max- upper-limit of the cache
-
destroy
public void destroy()Allows for cleanup of a cache implementation.- Specified by:
destroyin interfaceICacheStore
-