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
Please register or sign in to comment