org.apache.http.impl.client.cache

## Class BasicHttpCacheStorage

- java.lang.Object
- - org.apache.http.impl.client.cache.BasicHttpCacheStorage

All Implemented Interfaces:
  HttpCacheStorage

    @Contract(threading=SAFE)
    public class BasicHttpCacheStorage
    extends Object
    implements HttpCacheStorage

Basic `HttpCacheStorage` implementation backed by an instance of `LinkedHashMap`. In other words, cache entries and the cached response bodies are held in-memory. This cache does NOT deallocate resources associated with the cache entries; it is intended for use with `HeapResource` and similar. This is the default cache storage backend used by `CachingHttpClients`.

Since:
  4.1

### Constructor Summary

Constructors
Constructor and Description
`BasicHttpCacheStorage(CacheConfig config)`

### Method Summary

Methods
`HttpCacheEntry` `getEntry(String url)` Gets an entry from the cache, if it exists
`void` `putEntry(String url, HttpCacheEntry entry)` Places a HttpCacheEntry in the cache
`void` `removeEntry(String url)` Removes a HttpCacheEntry from the cache
`void` `updateEntry(String url, HttpCacheUpdateCallback callback)` Atomically applies the given callback to update an existing cache entry under a given key.

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

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

### Constructor Detail

#### BasicHttpCacheStorage

    public BasicHttpCacheStorage(CacheConfig config)

### Method Detail

#### putEntry

    public void putEntry(String url,
                HttpCacheEntry entry)
                  throws IOException

Places a HttpCacheEntry in the cache

Specified by:
  `putEntry` in interface `HttpCacheStorage`
Parameters:
  `url` - Url to use as the cache key
  `entry` - HttpCacheEntry to place in the cache
Throws:
  `IOException`

#### getEntry

    public HttpCacheEntry getEntry(String url)
                            throws IOException

Gets an entry from the cache, if it exists

Specified by:
  `getEntry` in interface `HttpCacheStorage`
Parameters:
  `url` - Url that is the cache key
Returns:
  HttpCacheEntry if one exists, or null for cache miss
Throws:
  `IOException`

#### removeEntry

    public void removeEntry(String url)
                     throws IOException

Removes a HttpCacheEntry from the cache

Specified by:
  `removeEntry` in interface `HttpCacheStorage`
Parameters:
  `url` - Url that is the cache key
Throws:
  `IOException`

#### updateEntry

    public void updateEntry(String url,
                   HttpCacheUpdateCallback callback)
                     throws IOException

Description copied from interface: `HttpCacheStorage`
Atomically applies the given callback to update an existing cache entry under a given key.

Specified by:
  `updateEntry` in interface `HttpCacheStorage`
Parameters:
  `url` - indicates which entry to modify
  `callback` - performs the update; see `HttpCacheUpdateCallback` for details, but roughly the callback expects to be handed the current entry and will return the new value for the entry.
Throws:
  `IOException`