# Package com.google.android.exoplayer2.upstream.cache

- Interface Summary
  Interface | Description
  --- | ---
  Cache | A cache that supports partial caching of resources.
  Cache.Listener | Listener of `Cache` events.
  CacheDataSource.EventListener | Listener of `CacheDataSource` events.
  CacheEvictor | Evicts data from a `Cache`.
  CacheKeyFactory | Factory for cache keys.
  CacheWriter.ProgressListener | Receives progress updates during cache operations.
  ContentMetadata | Interface for an immutable snapshot of keyed metadata.

- Class Summary
  Class | Description
  --- | ---
  CacheDataSink | Writes data into a cache.
  CacheDataSink.Factory | `DataSink.Factory` for `CacheDataSink` instances.
  CacheDataSinkFactory | Deprecated. Use `CacheDataSink.Factory`.
  CacheDataSource | A `DataSource` that reads and writes a `Cache`.
  CacheDataSource.Factory | `DataSource.Factory` for `CacheDataSource` instances.
  CacheDataSourceFactory | Deprecated. Use `CacheDataSource.Factory`.
  CachedRegionTracker | Utility class for efficiently tracking regions of data that are stored in a `Cache` for a given cache key.
  CacheSpan | Defines a span of data that may or may not be cached (as indicated by `CacheSpan.isCached`).
  CacheWriter | Caching related utility methods.
  ContentMetadataMutations | Defines multiple mutations on metadata value which are applied atomically.
  DefaultContentMetadata | Default implementation of `ContentMetadata`.
  LeastRecentlyUsedCacheEvictor | Evicts least recently used cache files first.
  NoOpCacheEvictor | Evictor that doesn't ever evict cache files.
  SimpleCache | A `Cache` implementation that maintains an in-memory representation.

- Exception Summary
  Exception | Description
  --- | ---
  Cache.CacheException | Thrown when an error is encountered when writing data.
  CacheDataSink.CacheDataSinkException | Thrown when an `IOException` is encountered when writing data to the sink.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  CacheDataSource.CacheIgnoredReason | Reasons the cache may be ignored.
  CacheDataSource.Flags | Flags controlling the CacheDataSource's behavior.