# androidx.media3.datasource.cache

*** ** * ** ***

## Annotations

|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSource.CacheIgnoredReason` | Reasons the cache may be ignored. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSource.Flags` | Flags controlling the CacheDataSource's behavior. |

## Interfaces

|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/Cache` | A cache that supports partial caching of resources. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/Cache.Listener` | Listener of `https://developer.android.com/reference/androidx/media3/datasource/cache/Cache` events. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSource.EventListener` | Listener of `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSource` events. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheEvictor` | Evicts data from a `https://developer.android.com/reference/androidx/media3/datasource/cache/Cache`. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheKeyFactory` | Factory for cache keys. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheWriter.ProgressListener` | Receives progress updates during cache operations. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadata` | Interface for an immutable snapshot of keyed metadata. |

## Classes

|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSink` | Writes data into a cache. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSink.Factory` | `https://developer.android.com/reference/androidx/media3/datasource/DataSink.Factory` for `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSink` instances. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSource` | A `https://developer.android.com/reference/androidx/media3/datasource/DataSource` that reads and writes a `https://developer.android.com/reference/androidx/media3/datasource/cache/Cache`. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSource.Factory` | `https://developer.android.com/reference/androidx/media3/datasource/DataSource.Factory` for `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSource` instances. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheSpan` | Defines a span of data that may or may not be cached (as indicated by `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheSpan#isCached()`). |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheWriter` | Caching related utility methods. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | Defines multiple mutations on metadata value which are applied atomically. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/DefaultContentMetadata` | Default implementation of `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadata`. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/LeastRecentlyUsedCacheEvictor` | Evicts least recently used cache files first. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/NoOpCacheEvictor` | Evictor that doesn't ever evict cache files. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/SimpleCache` | A `https://developer.android.com/reference/androidx/media3/datasource/cache/Cache` implementation that maintains an in-memory representation. |

## Exceptions

|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/Cache.CacheException` | Thrown when an error is encountered when writing data. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/CacheDataSink.CacheDataSinkException` | Thrown when an `https://developer.android.com/reference/java/io/IOException.html` is encountered when writing data to the sink. |