CamelDataCache

CamelDataCache

Functions

Description

Functions

camel_data_cache_new ()

CamelDataCache *
camel_data_cache_new (const gchar *path,
                      GError **error);

Create a new data cache.

Parameters

path

Base path of cache, subdirectories will be created here.

 

error

return location for a GError, or NULL

 

Returns

A new cache object, or NULL if the base path cannot be written to.


camel_data_cache_get_path ()

const gchar *
camel_data_cache_get_path (CamelDataCache *cdc);

Returns the path to the data cache.

Parameters

cdc

a CamelDataCache

 

Returns

the path to the data cache

Since: 2.32


camel_data_cache_set_path ()

void
camel_data_cache_set_path (CamelDataCache *cdc,
                           const gchar *path);

Sets the path to the data cache.

Parameters

cdc

a CamelDataCache

 

path

path to the data cache

 

Since: 2.32


camel_data_cache_get_expire_enabled ()

gboolean
camel_data_cache_get_expire_enabled (CamelDataCache *cdc);

Gets whether expire of cache data is enabled.

This is a complementary property for camel_data_cache_set_expire_age() and camel_data_cache_set_expire_access(), which allows to disable expiry without touching the two values. Having expire enabled, but not have set any of the two times, still behaves like not having expiry enabled.

Parameters

cdc

a CamelDataCache

 

Returns

Whether expire is enabled.

Since: 3.24


camel_data_cache_set_expire_enabled ()

void
camel_data_cache_set_expire_enabled (CamelDataCache *cdc,
                                     gboolean expire_enabled);

Sets whether expire of cache data is enabled.

This is a complementary property for camel_data_cache_set_expire_age() and camel_data_cache_set_expire_access(), which allows to disable expiry without touching the two values. Having expire enabled, but not have set any of the two times, still behaves like not having expiry enabled.

Parameters

cdc

a CamelDataCache

 

expire_enabled

a value to set

 

Since: 3.24


camel_data_cache_set_expire_age ()

void
camel_data_cache_set_expire_age (CamelDataCache *cdc,
                                 time_t when);

Set the cache expiration policy for aged entries.

Items in the cache older than when seconds may be flushed at any time. Items are expired in a lazy manner, so it is indeterminate when the items will physically be removed.

Note you can set both an age and an access limit. The age acts as a hard limit on cache entries.

Parameters

cdc

A CamelDataCache

 

when

Timeout for age expiry, or -1 to disable.

 

camel_data_cache_set_expire_access ()

void
camel_data_cache_set_expire_access (CamelDataCache *cdc,
                                    time_t when);

Set the cache expiration policy for access times.

Items in the cache which haven't been accessed for when seconds may be expired at any time. Items are expired in a lazy manner, so it is indeterminate when the items will physically be removed.

Note you can set both an age and an access limit. The age acts as a hard limit on cache entries.

Parameters

cdc

A CamelDataCache

 

when

Timeout for access, or -1 to disable access expiry.

 

camel_data_cache_add ()

GIOStream *
camel_data_cache_add (CamelDataCache *cdc,
                      const gchar *path,
                      const gchar *key,
                      GError **error);

Add a new item to the cache, returning a GIOStream to the new item.

The key and the path combine to form a unique key used to store the item.

Potentially, expiry processing will be performed while this call is executing.

The returned GIOStream is referenced for thread-safety and must be unreferenced with g_object_unref() when finished with it.

Parameters

cdc

A CamelDataCache

 

path

Relative path of item to add.

 

key

Key of item to add.

 

error

return location for a GError, or NULL

 

Returns

a GIOStream for the new cache item, or NULL.

[transfer full]


camel_data_cache_get ()

GIOStream *
camel_data_cache_get (CamelDataCache *cdc,
                      const gchar *path,
                      const gchar *key,
                      GError **error);

Lookup an item in the cache. If the item exists, a GIOStream is returned for the item. The stream may be shared by multiple callers, so ensure the stream is in a valid state through external locking.

The returned GIOStream is referenced for thread-safety and must be unreferenced with g_object_unref() when finished with it.

Parameters

cdc

A CamelDataCache

 

path

Path to the (sub) cache the item exists in.

 

key

Key for the cache item.

 

error

return location for a GError, or NULL

 

Returns

a GIOStream for the requested cache item, or NULL.

[transfer full]


camel_data_cache_remove ()

gint
camel_data_cache_remove (CamelDataCache *cdc,
                         const gchar *path,
                         const gchar *key,
                         GError **error);

Remove/expire a cache item.

Parameters

cdc

A CamelDataCache

 

path

Path to the (sub) cache the item exists in.

 

key

Key for the cache item.

 

error

return location for a GError, or NULL

 

Returns

0 on success, -1 on error


camel_data_cache_get_filename ()

gchar *
camel_data_cache_get_filename (CamelDataCache *cdc,
                               const gchar *path,
                               const gchar *key);

Lookup the filename for an item in the cache

Parameters

cdc

A CamelDataCache

 

path

Path to the (sub) cache the item exists in.

 

key

Key for the cache item.

 

Returns

The filename for a cache item

Since: 2.26


camel_data_cache_clear ()

void
camel_data_cache_clear (CamelDataCache *cdc,
                        const gchar *path);

Clear cache's content in path .

Parameters

cdc

a CamelDataCache

 

path

Path to the (sub) cache the item exists in.

 

Since: 3.2

Types and Values