EFileCache

EFileCache — Simple file-based hash table for strings

Types and Values

struct EFileCache

Object Hierarchy

    GObject
    ╰── EFileCache
        ├── EBookBackendCache
        ╰── ECalBackendCache

Description

An EFileCache is a simple hash table of strings backed by an XML file for permanent storage. The XML file is written to disk with every unless the cache is temporarily frozen with e_file_cache_freeze_changes().

Functions

e_file_cache_new ()

EFileCache *
e_file_cache_new (const gchar *filename);

Creates a new EFileCache object, which implements a cache of objects. Useful for remote backends.

Parameters

filename

filename where the cache is kept

 

Returns

a new EFileCache


e_file_cache_remove ()

gboolean
e_file_cache_remove (EFileCache *cache);

Remove the cache from disk.

Parameters

cache

an EFileCache

 

Returns

TRUE if successful, FALSE if a file error occurred


e_file_cache_clean ()

gboolean
e_file_cache_clean (EFileCache *cache);

Clean up the cache's contents.

Parameters

cache

an EFileCache

 

Returns

TRUE always


e_file_cache_get_object ()

const gchar *
e_file_cache_get_object (EFileCache *cache,
                         const gchar *key);

Returns the object corresponding to key . If no such object exists in cache , the function returns NULL.

Parameters

cache

an EFileCache

 

key

the hash key of the object to find

 

Returns

the object corresponding to key


e_file_cache_get_objects ()

GSList *
e_file_cache_get_objects (EFileCache *cache);

Returns a list of objects in cache . The objects are owned by cache and must not be modified or freed. Free the returned list with g_slist_free().

Parameters

cache

an EFileCache

 

Returns

a list of objects


e_file_cache_get_keys ()

GSList *
e_file_cache_get_keys (EFileCache *cache);

Returns a list of keys in cache . The keys are owned by cache and must not be modified or freed. Free the returned list with g_slist_free().

Parameters

cache

an EFileCache

 

Returns

a list of keys


e_file_cache_add_object ()

gboolean
e_file_cache_add_object (EFileCache *cache,
                         const gchar *key,
                         const gchar *value);

Adds a new key / value entry to cache . If an object corresponding to key already exists in cache , the function returns FALSE.

Parameters

cache

an EFileCache

 

key

the hash key of the object to add

 

value

the object to add

 

Returns

TRUE if successful, FALSE if key already exists


e_file_cache_replace_object ()

gboolean
e_file_cache_replace_object (EFileCache *cache,
                             const gchar *key,
                             const gchar *new_value);

Replaces the object corresponding to key with new_value . If no such object exists in cache , the function returns FALSE.

Parameters

cache

an EFileCache

 

key

the hash key of the object to replace

 

new_value

the new object for key

 

Returns

TRUE if successful, FALSE if key was not found


e_file_cache_remove_object ()

gboolean
e_file_cache_remove_object (EFileCache *cache,
                            const gchar *key);

Removes the object corresponding to key from cache . If no such object exists in cache , the function returns FALSE.

Parameters

cache

an EFileCache

 

key

the hash key of the object to remove

 

Returns

TRUE if successful, FALSE if key was not found


e_file_cache_freeze_changes ()

void
e_file_cache_freeze_changes (EFileCache *cache);

Disables temporarily all writes to disk for cache .

Parameters

cache

an EFileCache

 

e_file_cache_thaw_changes ()

void
e_file_cache_thaw_changes (EFileCache *cache);

Reverts the affects of e_file_cache_freeze_changes(). Each change to cache is once again written to disk.

Parameters

cache

an EFileCache

 

e_file_cache_get_filename ()

const gchar *
e_file_cache_get_filename (EFileCache *cache);

Gets the name of the file where the cache is being stored.

Parameters

cache

A EFileCache object.

 

Returns

The name of the cache.

Types and Values

struct EFileCache

struct EFileCache;

Contains only private data that should be read and manipulated using the functions below.