org.jgroups.blocks

## Class Cache<K,V>

- java.lang.Object
- - org.jgroups.blocks.Cache<K,V>

    public class Cache<K,V>
    extends java.lang.Object

Simple cache which maintains keys and value. A reaper can be enabled which periodically evicts expired entries. Also, when the cache is configured to be bounded, entries in excess of the max size will be evicted on put().

Author:
  Bela Ban

### Nested Class Summary

Nested Classes
`static interface` `Cache.ChangeListener`
`static class` `Cache.Value<V>`

### Constructor Summary

Constructors
Constructor and Description
`Cache()`

### Method Summary

Methods
`void` `addChangeListener(Cache.ChangeListener l)`
`void` `disableReaping()`
`java.lang.String` `dump()`
`void` `enableReaping(long interval)` Runs the reaper every interval ms, evicts expired items
`java.util.Set<java.util.Map.Entry<K,Cache.Value<V>>>` `entrySet()`
`V` `get(K key)`
`Cache.Value<V>` `getEntry(K key)`
`java.util.concurrent.ConcurrentMap<K,Cache.Value<V>>` `getInternalMap()` This method should not be used to add or remove elements ! It was just added because ReplCacheDemo requires it for its data model
`int` `getMaxNumberOfEntries()`
`int` `getSize()`
`boolean` `isReapingEnabled()`
`V` `put(K key, V val, long caching_time)`
`V` `remove(K key)`
`void` `removeChangeListener(Cache.ChangeListener l)`
`void` `setMaxNumberOfEntries(int max_num_entries)`
`void` `start()`
`void` `stop()`
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### Cache

    public Cache()

### Method Detail

#### getMaxNumberOfEntries

    public int getMaxNumberOfEntries()

#### setMaxNumberOfEntries

    public void setMaxNumberOfEntries(int max_num_entries)

#### addChangeListener

    public void addChangeListener(Cache.ChangeListener l)

#### removeChangeListener

    public void removeChangeListener(Cache.ChangeListener l)

#### getSize

    public int getSize()

#### isReapingEnabled

    public boolean isReapingEnabled()

#### enableReaping

    public void enableReaping(long interval)

Runs the reaper every interval ms, evicts expired items

#### disableReaping

    public void disableReaping()

#### start

    public void start()

#### stop

    public void stop()

#### put

    public V put(K key,
        V val,
        long caching_time)

Parameters:
  `key` -
  `val` -
  `caching_time` - Number of milliseconds to keep an entry in the cache. -1 means don't cache (if reaping is enabled, we'll evict an entry with -1 caching time), 0 means never evict. In the latter case, we can still evict an entry with 0 caching time: when we have a bounded cache, we evict in order of insertion no matter what the caching time is.

#### get

    public V get(K key)

#### getInternalMap

    public java.util.concurrent.ConcurrentMap<K,Cache.Value<V>> getInternalMap()

This method should not be used to add or remove elements ! It was just added because ReplCacheDemo requires it for its data model

Returns:

#### getEntry

    public Cache.Value<V> getEntry(K key)

#### remove

    public V remove(K key)

#### entrySet

    public java.util.Set<java.util.Map.Entry<K,Cache.Value<V>>> entrySet()

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### dump

    public java.lang.String dump()