## org.apache.http.impl.client.cache
Class BasicHttpCacheStorage

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

All Implemented Interfaces:
  HttpCacheStorage

    @ThreadSafe
    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 `CachingHttpClient`.

Since:
  4.1

Constructor Summary
`BasicHttpCacheStorage(CacheConfig config)`

Method Summary
`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`

Copyright © 1999-2011 The Apache Software Foundation. All Rights Reserved.