org.red5.server.cache
Class EhCacheImpl

java.lang.Object
  extended by org.red5.server.cache.EhCacheImpl
All Implemented Interfaces:
ICacheStore, Aware, ApplicationContextAware

public class EhCacheImpl
extends Object
implements ICacheStore, ApplicationContextAware

Provides an implementation of an object cache using EhCache.

Author:
The Red5 Project ([email protected]), Paul Gregoire ([email protected])
See Also:
ehcache homepage

Field Summary
protected static Logger log
           
 
Constructor Summary
EhCacheImpl()
           
 
Method Summary
 void destroy()
          Allows for cleanup of a cache implementation.
 ICacheable get(String name)
          Return a cached object with the given name.
static ApplicationContext getApplicationContext()
          Getter for property 'applicationContext'.
static long getCacheHit()
          Getter for property 'cacheHit'.
 CacheManagerEventListener getCacheManagerEventListener()
          Getter for property 'cacheManagerEventListener'.
static long getCacheMiss()
          Getter for property 'cacheMiss'.
 int getDiskExpiryThreadIntervalSeconds()
          Getter for property 'diskExpiryThreadIntervalSeconds'.
 String getDiskStore()
          Getter for property 'diskStore'.
 String getMemoryStoreEvictionPolicy()
          Getter for property 'memoryStoreEvictionPolicy'.
 Iterator<String> getObjectNames()
          Return iterator over the names of all already loaded objects in the storage.
 Iterator<SoftReference<? extends ICacheable>> getObjects()
          Return iterator over the already loaded objects in the storage.
 void init()
           
 boolean offer(String name, Object obj)
          Offer an object to the cache with an associated key.
 void put(String name, Object obj)
          Puts an object in the cache with the associated key.
 boolean remove(ICacheable obj)
          Delete the passed cached object.
 boolean remove(String name)
          Delete the cached object with the given name.
 void setApplicationContext(ApplicationContext context)
          
 void setCacheConfigs(List<CacheConfiguration> configs)
          Setter for property 'cacheConfigs'.
 void setCacheManagerEventListener(CacheManagerEventListener cacheManagerEventListener)
          Setter for property 'cacheManagerEventListener'.
 void setDiskExpiryThreadIntervalSeconds(int diskExpiryThreadIntervalSeconds)
          Setter for property 'diskExpiryThreadIntervalSeconds'.
 void setDiskStore(String diskStore)
          Setter for property 'diskStore'.
 void setMaxEntries(int capacity)
          Sets the maximum number of entries for the cache.
 void setMemoryStoreEvictionPolicy(String memoryStoreEvictionPolicy)
          Setter for property 'memoryStoreEvictionPolicy'.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static Logger log
Constructor Detail

EhCacheImpl

public EhCacheImpl()
Method Detail

setApplicationContext

public void setApplicationContext(ApplicationContext context)
                           throws BeansException

Specified by:
setApplicationContext in interface ApplicationContextAware
Throws:
BeansException

getApplicationContext

public static ApplicationContext getApplicationContext()
Getter for property 'applicationContext'.

Returns:
Value for property 'applicationContext'.

init

public void init()

get

public ICacheable get(String name)
Return a cached object with the given name.

Specified by:
get in interface ICacheStore
Parameters:
name - the name of the object to return
Returns:
the object or null if no such object was found

put

public void put(String name,
                Object obj)
Puts an object in the cache with the associated key.

Specified by:
put in interface ICacheStore
Parameters:
name - string name representing the object
obj - cacheable object

getObjectNames

public Iterator<String> getObjectNames()
Return iterator over the names of all already loaded objects in the storage.

Specified by:
getObjectNames in interface ICacheStore
Returns:
iterator over all objects names

getObjects

public Iterator<SoftReference<? extends ICacheable>> getObjects()
Return iterator over the already loaded objects in the storage.

Specified by:
getObjects in interface ICacheStore
Returns:
iterator over all objects

offer

public boolean offer(String name,
                     Object obj)
Offer an object to the cache with an associated key. If the named object exists in cache, it will not be accepted.

Specified by:
offer in interface ICacheStore
Parameters:
name - string name representing the object
obj - cacheable object
Returns:
true if accepted, false otherwise

remove

public boolean remove(ICacheable obj)
Delete the passed cached object.

Specified by:
remove in interface ICacheStore
Parameters:
obj - the object to delete
Returns:
true if was removed; false it wasn't in cache to begin with

remove

public boolean remove(String name)
Delete the cached object with the given name.

Specified by:
remove in interface ICacheStore
Parameters:
name - the name of the object to delete
Returns:
true if was removed; false it wasn't in cache to begin with

setCacheConfigs

public void setCacheConfigs(List<CacheConfiguration> configs)
Setter for property 'cacheConfigs'.

Parameters:
configs - Value to set for property 'cacheConfigs'.

setMaxEntries

public void setMaxEntries(int capacity)
Sets the maximum number of entries for the cache.

Specified by:
setMaxEntries in interface ICacheStore
Parameters:
capacity - upper-limit of the cache

getMemoryStoreEvictionPolicy

public String getMemoryStoreEvictionPolicy()
Getter for property 'memoryStoreEvictionPolicy'.

Returns:
Value for property 'memoryStoreEvictionPolicy'.

setMemoryStoreEvictionPolicy

public void setMemoryStoreEvictionPolicy(String memoryStoreEvictionPolicy)
Setter for property 'memoryStoreEvictionPolicy'.

Parameters:
memoryStoreEvictionPolicy - Value to set for property 'memoryStoreEvictionPolicy'.

getDiskExpiryThreadIntervalSeconds

public int getDiskExpiryThreadIntervalSeconds()
Getter for property 'diskExpiryThreadIntervalSeconds'.

Returns:
Value for property 'diskExpiryThreadIntervalSeconds'.

setDiskExpiryThreadIntervalSeconds

public void setDiskExpiryThreadIntervalSeconds(int diskExpiryThreadIntervalSeconds)
Setter for property 'diskExpiryThreadIntervalSeconds'.

Parameters:
diskExpiryThreadIntervalSeconds - Value to set for property 'diskExpiryThreadIntervalSeconds'.

getDiskStore

public String getDiskStore()
Getter for property 'diskStore'.

Returns:
Value for property 'diskStore'.

setDiskStore

public void setDiskStore(String diskStore)
Setter for property 'diskStore'.

Parameters:
diskStore - Value to set for property 'diskStore'.

getCacheManagerEventListener

public CacheManagerEventListener getCacheManagerEventListener()
Getter for property 'cacheManagerEventListener'.

Returns:
Value for property 'cacheManagerEventListener'.

setCacheManagerEventListener

public void setCacheManagerEventListener(CacheManagerEventListener cacheManagerEventListener)
Setter for property 'cacheManagerEventListener'.

Parameters:
cacheManagerEventListener - Value to set for property 'cacheManagerEventListener'.

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'.

destroy

public void destroy()
Allows for cleanup of a cache implementation.

Specified by:
destroy in interface ICacheStore


Copyright © 2006-2012 The Red5 Project