org.apache.cassandra.cache

## Class AutoSavingCache<K extends CacheKey,V>

- java.lang.Object
- - org.apache.cassandra.cache.InstrumentingCache<K,V>
  - - org.apache.cassandra.cache.AutoSavingCache<K,V>

    public class AutoSavingCache<K extends CacheKey,V>
    extends InstrumentingCache<K,V>

### Nested Class Summary

Nested Classes
`static interface` `AutoSavingCache.CacheSerializer<K extends CacheKey,V>`
`static interface` `AutoSavingCache.IStreamFactory`
`class` `AutoSavingCache.Writer`

### Field Summary

Fields
`protected CacheService.CacheType` `cacheType`
`static java.util.Set<CacheService.CacheType>` `flushInProgress` True if a cache flush is currently executing: only one may execute at a time.
`protected java.util.concurrent.ScheduledFuture<?>` `saveTask`

### Constructor Summary

Constructors
Constructor and Description
`AutoSavingCache(ICache<K,V> cache, CacheService.CacheType cacheType, AutoSavingCache.CacheSerializer<K,V> cacheloader)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`java.io.File` `getCacheCrcPath(java.lang.String version)`
`java.io.File` `getCacheDataPath(java.lang.String version)`
`AutoSavingCache.Writer` `getWriter(int keysToSave)`
`int` `loadSaved()`
`com.google.common.util.concurrent.ListenableFuture<java.lang.Integer>` `loadSavedAsync()`
`void` `scheduleSaving(int savePeriodInSeconds, int keysToSave)`
`static void` `setStreamFactory(AutoSavingCache.IStreamFactory streamFactory)`
`java.util.concurrent.Future<?>` `submitWrite(int keysToSave)`

### Methods inherited from class org.apache.cassandra.cache.InstrumentingCache

`clear, containsKey, get, getCapacity, getInternal, getMetrics, hotKeyIterator, keyIterator, put, putIfAbsent, remove, replace, setCapacity, size, weightedSize`

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

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

### Field Detail

#### flushInProgress

    public static final java.util.Set<CacheService.CacheType> flushInProgress

True if a cache flush is currently executing: only one may execute at a time.

#### saveTask

    protected volatile java.util.concurrent.ScheduledFuture<?> saveTask

#### cacheType

    protected final CacheService.CacheType cacheType

### Constructor Detail

#### AutoSavingCache

    public AutoSavingCache(ICache<K,V> cache,
                           CacheService.CacheType cacheType,
                           AutoSavingCache.CacheSerializer<K,V> cacheloader)

### Method Detail

#### setStreamFactory

    public static void setStreamFactory(AutoSavingCache.IStreamFactory streamFactory)

#### getCacheDataPath

    public java.io.File getCacheDataPath(java.lang.String version)

#### getCacheCrcPath

    public java.io.File getCacheCrcPath(java.lang.String version)

#### getWriter

    public AutoSavingCache.Writer getWriter(int keysToSave)

#### scheduleSaving

    public void scheduleSaving(int savePeriodInSeconds,
                               int keysToSave)

#### loadSavedAsync

    public com.google.common.util.concurrent.ListenableFuture<java.lang.Integer> loadSavedAsync()

#### loadSaved

    public int loadSaved()

#### submitWrite

    public java.util.concurrent.Future<?> submitWrite(int keysToSave)