Just switched on one of the “always up to date” mechanisms in Conduit. Simply, a dataprovider can now request a sync when it detects a change. The sync will happen straight away, so the data wil always be up to date.
I’ve also cobbled together an AutoSync mixin for the common cases to use. This buffers changes and provides a way to feed a list changes to the sync engine. This means the sync engine can avoid a “calculate what has changed” step. The code deals with situations such as added and deleting an object before it is even synced anywhere transparently, making custom dataproviders with change detection super easy. The code is there and ready for dataproviders to use, though I still need to implement some glue before the sync engine will be able to fully take advantage.
So far, Tomboy, Folders and the experimental GConf preferences sync are geared up to use autosync. F-spot and Evolution are on the list to get this functionality, in both cases we need to implement some code in our dependencies (in f-spot directly, and in the python-evolution support libary). PC to PC needs more thinking as XML-RPC isn’t geared up for two-way communication…
This behaviour should integrate well with Online Desktop, which i hope to blog about in the near future..
Tags: Conduit