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

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

All Implemented Interfaces:
  HttpCacheStorage

    @ThreadSafe
    public class ManagedHttpCacheStorage

extends Object
implements HttpCacheStorage

`HttpCacheStorage` implementation capable of deallocating resources associated with the cache entries. This cache keeps track of cache entries using `PhantomReference` and maintains a collection of all resources that are no longer in use. The cache, however, does not automatically deallocates associated resources by invoking `Resource.dispose()` method. The consumer MUST periodically call `cleanResources()` method to trigger resource deallocation. The cache can be permanently shut down using `shutdown()` method. All resources associated with the entries used by the cache will be deallocated. This `HttpCacheStorage` implementation is intended for use with `FileResource` and similar.

Since:
  4.1

Constructor Summary
`ManagedHttpCacheStorage(CacheConfig config)`

Method Summary
`void` `cleanResources()`
`HttpCacheEntry` `getEntry(String url)` Retrieves the cache entry stored under the given key or null if no entry exists under that key.
`void` `putEntry(String url, HttpCacheEntry entry)` Store a given cache entry under the given key.
`void` `removeEntry(String url)` Deletes/invalidates/removes any cache entries currently stored under the given key.
`void` `shutdown()`
`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

### ManagedHttpCacheStorage

    public ManagedHttpCacheStorage(CacheConfig config)

Method Detail

### putEntry

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

  Description copied from interface: `HttpCacheStorage`
  Store a given cache entry under the given key.

  Specified by:
    `putEntry` in interface `HttpCacheStorage`
  Parameters:
    `url` - where in the cache to store the entry
    `entry` - cached response to store
  Throws:
    `IOException`

### getEntry

    public HttpCacheEntry getEntry(String url)
                            throws IOException

  Description copied from interface: `HttpCacheStorage`
  Retrieves the cache entry stored under the given key or null if no entry exists under that key.

  Specified by:
    `getEntry` in interface `HttpCacheStorage`
  Parameters:
    `url` - cache key
  Returns:
    an `HttpCacheEntry` or `null` if no entry exists
  Throws:
    `IOException`

### removeEntry

    public void removeEntry(String url)
                     throws IOException

  Description copied from interface: `HttpCacheStorage`
  Deletes/invalidates/removes any cache entries currently stored under the given key.

  Specified by:
    `removeEntry` in interface `HttpCacheStorage`
  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`

### cleanResources

    public void cleanResources()

### shutdown

    public void shutdown()

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