camel-uid-cache

camel-uid-cache

Synopsis

                    CamelUIDCache;
CamelUIDCache *     camel_uid_cache_new                 (const char *filename);
gboolean            camel_uid_cache_save                (CamelUIDCache *cache);
void                camel_uid_cache_destroy             (CamelUIDCache *cache);
GPtrArray *         camel_uid_cache_get_new_uids        (CamelUIDCache *cache,
                                                         GPtrArray *uids);
void                camel_uid_cache_save_uid            (CamelUIDCache *cache,
                                                         const char *uid);
void                camel_uid_cache_free_uids           (GPtrArray *uids);

Description

Details

CamelUIDCache

typedef struct {
	char *filename;
	GHashTable *uids;
	unsigned int level;
	size_t expired;
	size_t size;
	int fd;
} CamelUIDCache;


camel_uid_cache_new ()

CamelUIDCache *     camel_uid_cache_new                 (const char *filename);

Creates a new UID cache, initialized from filename. If filename doesn't already exist, the UID cache will be empty. Otherwise, if it does exist but can't be read, the function will return NULL.

filename :

path to load the cache from

Returns :

a new UID cache, or NULL

camel_uid_cache_save ()

gboolean            camel_uid_cache_save                (CamelUIDCache *cache);

Attempts to save cache back to disk.

cache :

a CamelUIDCache

Returns :

success or failure

camel_uid_cache_destroy ()

void                camel_uid_cache_destroy             (CamelUIDCache *cache);

Destroys cache and frees its data.

cache :

a CamelUIDCache

camel_uid_cache_get_new_uids ()

GPtrArray *         camel_uid_cache_get_new_uids        (CamelUIDCache *cache,
                                                         GPtrArray *uids);

Returns an array of UIDs from uids that are not in cache, and removes UIDs from cache that aren't in uids.

cache :

a CamelUIDCache

uids :

an array of UIDs

Returns :

an array of new UIDs, which must be freed with camel_uid_cache_free_uids().

camel_uid_cache_save_uid ()

void                camel_uid_cache_save_uid            (CamelUIDCache *cache,
                                                         const char *uid);

Marks a uid for saving.

cache :

a CamelUIDCache

uid :

a uid to save

camel_uid_cache_free_uids ()

void                camel_uid_cache_free_uids           (GPtrArray *uids);

Frees the array of UIDs.

uids :

an array returned from camel_uid_cache_get_new_uids()