Skip to content
Commit 36ecd01a authored by Philip Withnall's avatar Philip Withnall 🚫
Browse files

telepathy: Allow for updated Tpf.Personas properties to update the cache

Currently, the cache is only written when going offline, which means that any
properties of Tpf.Personas which are updated at runtime aren’t written to the
cache unless the client explicitly goes offline before being closed. This
doesn’t often happen, meaning the property updates are lost and the cache
becomes stale.

This commit keeps track of the clean/dirty state of the cache and writes it
out when PersonaStore.flush() is called. It also adds a new method,
IndividualAggregator.unprepare(), which ensures all the persona stores handled
by the aggregator are flushed. Clients should call this method before closing
their main loop.

(Calling flush() in the finalise function of the PersonaStore doesn’t work
because Tpf.PersonaStores are often never finalised due to the implementation
of Tpf.PersonaStore.dup_for_account(). Furthermore, calling flush() in the
finalise function of the IndividualAggregator doesn’t work because the client
will typically quit the main loop immediately afterwards, which will cancel
the asynchronous flush call.)

New API:
 • IndividualAggregator.unprepare()

Helps: https://bugzilla.gnome.org/show_bug.cgi?id=660128
parent 6f743fdc
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment