On Wed, 2009-09-23 at 11:21 +0100, Lukas Zeller wrote: > On Sep 23, 2009, at 11:31 , Patrick Ohly wrote: > > > In the SyncEvolution GUI we wanted to implement an indicator whether a > > certain datastore is done already while the sync itself continues. > > This > > would be useful as feedback to the user when he has to decide > > whether he > > can abort. > > > > "done" in the SyncML context would be "all data exchanged, mapping > > sent, > > client and server agree that anchors for the datastore can be > > updated". > > I'm no longer sure whether the protocol actually allows the last step > > unless also the whole session completes. > > No, IMHO the anchors may only be saved if the session completes (which > does not mean that all datastore syncs must complete *sucessfully*, > but all the SyncML protocol phases must complete correctly. Our > current implementation, both client and server side are doing it this > way, i.e. detecting that the session now has ended and then calling > engFinishDataStoreSync() for all datastores.
Yeah, I suspected that much. > > If it doesn't, then we have to drop the concept of an datastore > > which is > > completed early [...] > > I would not drop it - because this is a protocol detail that even > might change with future SyncML versions (who knows..). Correct. > Especially because the current progress event mechanism already has > what you are asking: PEV_SYNCEND is what you are looking for - this is > a per-datastore event signalling that the sync with this datastore has > ended. I misread the comments in engine_defs.h and associated that event with the whole session, not individual datastores. Perfect, this is what I was looking for. > > [...] except for one special case: if a datastore isn't part > > of the sync session at all, then it would be nice to tell the GUI > > that. > > We can do that in SyncEvolution without Synthesis extensions, but it > > would be more consistent if we had a PEV_DSDONE and/or PEV_DSDISABLED. > > Technically, a datastore that is not used in a sync does not even > exist in the engine (no TSyncDatastore object instantiated), so from > an engine perspective it's not entirely consistent to implement > something saying "hey, I'm telling you that I don't even exist...". Correct. That information for the GUI would have to be generated by the layer above the Synthesis engine, the one which disabled the store. I was only looking for a way to express this in terms of Synthesis progress events (because that is part of our UI interface), not for a way to get it issues by the engine. > > If you don't like these defines in engine_defs.h, can we add at > > least a > > PEV_CUSTOM_START = 128, PEV_CUSTOM_END = 255 range in it that is > > declared for use outside of the core engine? > > I think that's a good idea anyway, please add it! Okay, I will. -- Best Regards, Patrick Ohly The content of this message is my personal opinion only and although I am an employee of Intel, the statements I make here in no way represent Intel's position on the issue, nor am I authorized to speak on behalf of Intel on this matter. _______________________________________________ os-libsynthesis mailing list [email protected] http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis
