|
From: Patrick O. <pat...@gm...> - 2011-11-01 20:14:51
|
On Fri, 2011-10-28 at 13:17 -0400, Chris Frey wrote: > On Fri, Oct 28, 2011 at 04:27:02PM +0200, Patrick Ohly wrote: > > This advantage also has a significant downside: the rest of OpenSync has > > no idea about the DevInf of the SyncML peer and thus cannot take that > > into account when reading or writing the local database. It is also not > > possible to provide the capabilities of the local side to the Synthesis > > engine because there is not one single peer locally (group concept of > > OpenSync). > > > > As a result, data will get lost when doing round-trip syncs. > > I'm not a SyncML expert, so I'm not familiar what this "DevInf" information > will be, nor why we would lose it, nor why it might be important. :-( > > Can you give me an example of what might be missing? DevInf, or more precisely, the CtCap part of it, describes which properties are supported by a SyncML peer. This corresponds to the OpenSync-internal capability description. You can use this information to avoid data loss when sending an item and getting an update back. The key problem is: if a certain property (like BDAY) was sent and doesn't come back, is that because the value was removed intentionally by the user (in which case he also wants it removed locally) or was it dropped by the peer because it doesn't support that property? CtCap answers that question. As Lukas said, the Synthesis engine uses that information to avoid data loss. That won't work when invoked as part of OpenSync. Nor can OpenSync do that job because a generic SyncML plugin based on libsynthesis can't report the necessary information back to the OpenSync engine. -- Bye, Patrick Ohly -- Pat...@gm... http://www.estamos.de/ |