## camel-uid-cache

camel-uid-cache

## Functions

CamelUIDCache * | camel_uid_cache_new ()
gboolean | camel_uid_cache_save ()
void | camel_uid_cache_destroy ()
GPtrArray * | camel_uid_cache_get_new_uids ()
void | camel_uid_cache_save_uid ()
void | camel_uid_cache_free_uids ()

## Types and Values

| CamelUIDCache

## Description

## Functions

### camel_uid_cache_new ()

    CamelUIDCache *
    camel_uid_cache_new (const gchar *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`.

#### Parameters

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.

#### Parameters

cache | a CamelUIDCache |

#### Returns

success or failure

### camel_uid_cache_destroy ()

    void
    camel_uid_cache_destroy (CamelUIDCache *cache);

Destroys `cache` and frees its data.

#### Parameters

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` .

#### Parameters

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 gchar *uid);

Marks a uid for saving.

#### Parameters

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.

#### Parameters

uids | an array returned from `camel_uid_cache_get_new_uids()` |

## Types and Values

### CamelUIDCache

    typedef struct {
    	gchar *filename;
    	GHashTable *uids;
    	guint level;
    	gsize expired;
    	gsize size;
    	gint fd;
    } CamelUIDCache;