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
    Modifier and Type | Method and Description
    --- | ---
    `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–2022 The Apache Software Foundation. All rights reserved.