AvatarCache
Object Hierarchy:
Description:
public class AvatarCache : Object
A singleton persistent cache for avatars in folks.
Avatars may be added to the cache, and referred to by a persistent URI from that point onwards. The avatars will be stored on disk in the
user's XDG cache directory.
The avatar cache is typically used by backends where retrieving avatars is an expensive operation (for example, they have to be
downloaded from the network every time they're used).
All avatars from all users of the Folks.AvatarCache are stored in the same namespace, so callers must ensure
that the IDs they use for avatars are globally unique (e.g. by using the corresponding
Folks.Persona.uid).
Ongoing store operations (Folks.AvatarCache.store_avatar) are rate
limited to try and prevent file descriptor exhaustion. Load operations (
Folks.AvatarCache.load_avatar) must be rate limited by the client, as the file I/O occurs when calling
GLib.LoadableIcon.load rather than when retrieving the GLib.LoadableIcon
from the cache.
Since:
0.6.0
Content:
Static methods:
Methods:
- public async LoadableIcon? load_avatar (string id) throws Error
Fetch an avatar from the cache by its globally unique ID.
- public async string store_avatar (string id, LoadableIcon avatar) throws Error
Store an avatar in the cache, assigning the given globally unique ID
to it, which can later be used to load and remove the avatar from the cache. For example, this ID could be the UID of a persona. The
URI of the cached avatar file will be returned.
- public async void remove_avatar (string id) throws Error
Remove an avatar from the cache, if it exists in the cache. If the
avatar exists in the cache but there is a problem in removing it, a GLib.Error will be thrown.
- public string build_uri_for_avatar (string id)
Build the URI of an avatar file in the cache from a globally unique
ID. This will always succeed, even if the avatar doesn't exist in the cache.
Inherited Members:
All known members inherited from class GLib.Object
- @new
- newv
- new_valist
- get_type
- get_class
- @ref
- unref
- ref_sink
- weak_ref
- weak_unref
- add_weak_pointer
- remove_weak_pointer
- @get
- @set
- get_property
- set_property
- get_data
- set_data
- set_data_full
- steal_data
- get_qdata
- set_qdata
- set_qdata_full
- steal_qdata
- freeze_notify
- thaw_notify
- dispose
- constructed
- notify_property
- connect
- disconnect
- add_toggle_ref
- remove_toggle_ref
- bind_property
- notify
- ref_count