## SoupCache SoupCache — Caching support |

## Synopsis

    #include <libsoup/soup.h>

    struct              SoupCache;
    enum                SoupCacheType;
    SoupCache *         soup_cache_new                      (const char *cache_dir,
                                                             SoupCacheType cache_type);
    void                soup_cache_flush                    (SoupCache *cache);
    void                soup_cache_clear                    (SoupCache *cache);
    void                soup_cache_dump                     (SoupCache *cache);
    void                soup_cache_load                     (SoupCache *cache);
    guint               soup_cache_get_max_size             (SoupCache *cache);
    void                soup_cache_set_max_size             (SoupCache *cache,
                                                             guint max_size);

## Object Hierarchy

      GObject
       +----SoupCache

## Implemented Interfaces

SoupCache implements SoupSessionFeature and SoupContentProcessor.

## Properties

      "cache-dir"                gchar*                : Read / Write / Construct Only
      "cache-type"               SoupCacheType         : Read / Write / Construct Only

## Description

SoupCache implements a file-based cache for HTTP resources.

## Details

### struct SoupCache

    struct SoupCache;

### enum SoupCacheType

    typedef enum {
    	SOUP_CACHE_SINGLE_USER,
    	SOUP_CACHE_SHARED
    } SoupCacheType;

The type of cache; this affects what kinds of responses will be saved.

`SOUP_CACHE_SINGLE_USER` | a single-user cache
`SOUP_CACHE_SHARED` | a shared cache

Since 2.34

### soup_cache_new ()

    SoupCache *         soup_cache_new                      (const char *cache_dir,
                                                             SoupCacheType cache_type);

Creates a new SoupCache.

`cache_dir` : | the directory to store the cached data, or `NULL` to use the default one
`cache_type` : | the SoupCacheType of the cache
Returns : | a new SoupCache

Since 2.34

### soup_cache_flush ()

    void                soup_cache_flush                    (SoupCache *cache);

This function will force all pending writes in the `cache` to be committed to disk. For doing so it will iterate the GMainContext associated with `cache`'s session as long as needed.

Contrast with `soup_cache_dump()`, which writes out the cache index file.

`cache` : | a SoupCache

Since 2.34

### soup_cache_clear ()

    void                soup_cache_clear                    (SoupCache *cache);

Will remove all entries in the `cache` plus all the cache files.

`cache` : | a SoupCache

Since 2.34

### soup_cache_dump ()

    void                soup_cache_dump                     (SoupCache *cache);

Synchronously writes the cache index out to disk. Contrast with `soup_cache_flush()`, which writes pending cache entries to disk.

You must call this before exiting if you want your cache data to persist between sessions.

`cache` : | a SoupCache

Since 2.34.

### soup_cache_load ()

    void                soup_cache_load                     (SoupCache *cache);

Loads the contents of `cache`'s index into memory.

`cache` : | a SoupCache

Since 2.34

### soup_cache_get_max_size ()

    guint               soup_cache_get_max_size             (SoupCache *cache);

Gets the maximum size of the cache.

`cache` : | a SoupCache
Returns : | the maximum size of the cache, in bytes.

Since 2.34

### soup_cache_set_max_size ()

    void                soup_cache_set_max_size             (SoupCache *cache,
                                                             guint max_size);

Sets the maximum size of the cache.

`cache` : | a SoupCache
`max_size` : | the maximum size of the cache, in bytes

Since 2.34

## Property Details

### The `"cache-dir"` property

      "cache-dir"                gchar*                : Read / Write / Construct Only

The directory to store the cache files.

Default value: NULL

### The `"cache-type"` property

      "cache-type"               SoupCacheType         : Read / Write / Construct Only

Whether the cache is private or shared.

Default value: SOUP_CACHE_SINGLE_USER