org.red5.server.cache

## Class EhCacheImpl

- java.lang.Object
- - org.red5.server.cache.EhCacheImpl

All Implemented Interfaces:
  ICacheStore, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

    public class EhCacheImpl
    extends Object
    implements ICacheStore, org.springframework.context.ApplicationContextAware

Provides an implementation of an object cache using EhCache.

Author:
  The Red5 Project (red5@osflash.org), Paul Gregoire (mondain@gmail.com)
See Also:
  ehcache homepage

### Field Summary

Fields
`protected static org.slf4j.Logger` `log`

### Constructor Summary

Constructors
Constructor and Description
`EhCacheImpl()`

### Method Summary

Methods
`void` `destroy()` Allows for cleanup of a cache implementation.
`ICacheable` `get(String name)` Return a cached object with the given name.
`static org.springframework.context.ApplicationContext` `getApplicationContext()` Getter for property 'applicationContext'.
`static long` `getCacheHit()` Getter for property 'cacheHit'.
`net.sf.ehcache.event.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(org.springframework.context.ApplicationContext context)`
`void` `setCacheConfigs(List<net.sf.ehcache.config.CacheConfiguration> configs)` Setter for property 'cacheConfigs'.
`void` `setCacheManagerEventListener(net.sf.ehcache.event.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 org.slf4j.Logger log

### Constructor Detail

#### EhCacheImpl

    public EhCacheImpl()

### Method Detail

#### setApplicationContext

    public void setApplicationContext(org.springframework.context.ApplicationContext context)
                               throws org.springframework.beans.BeansException

Specified by:
  `setApplicationContext` in interface `org.springframework.context.ApplicationContextAware`
Throws:
  `org.springframework.beans.BeansException`

#### getApplicationContext

    public static org.springframework.context.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<net.sf.ehcache.config.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 net.sf.ehcache.event.CacheManagerEventListener getCacheManagerEventListener()

Getter for property 'cacheManagerEventListener'.

Returns:
  Value for property 'cacheManagerEventListener'.

#### setCacheManagerEventListener

    public void setCacheManagerEventListener(net.sf.ehcache.event.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`