On Thu, 2009-08-06 at 21:35 +0100, Patrick Ohly wrote: > On Tue, 2009-08-04 at 16:10 +0100, Patrick Ohly wrote: > > The interfaces must be pure virtual to allow multiple inheritance. > > Default implementations of them provide the current functionality (for > > example, EvolutionSyncSource: iterate over fixed lists of changes, > > import/export items as blobs) and hook that up with the Synthesis DB > > Interface. An implementor can put all of his code in one class which is > > derived from the appropriate base classes. > > I've implemented that concept and committed it to the "backend-api" > branch. Warning, the code is not stable. Be prepared for a somewhat > volatile branch and forced updates when pulling it.
I've pushed another revision to the branch. The Client::Source tests pass now (*), so I'm optimistic that the refactoring didn't break anything. Any further changes will be done as new commits on that branch. The patch is rather large, but it also removed a lot of cruft: 42 files changed, 2779 insertions(+), 3794 deletions(-) One piece of functionality was removed and not added again yet: logging of item changes as they occur. Previously, the syncevolution command line would log "[INFO] addressbook: adding 'Doe, John'" or something like it. This was implemented via some backend specific callback which would peek into the item data to extract a short description. A much better implementation in combination with the Synthesis engine would be to read the right fields from the field list. I'll add an utility class and the necessary hooks. For items which existed locally and had to be removed on behalf of the server, the backend had to read from the database. There's no way around that, so I'll add that API again. (*) When testing with Evolution 2.27.x, the current development version, I noticed that testLinkedItemsRemoveNormal fails, but that happens also with the "master" source and is caused by changes in the EDS calendar backend: the parent's LAST-MODIFIED gets updated when removing a detached recurrence. This is okay, the test should be relaxed. -- 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. _______________________________________________ SyncEvolution mailing list [email protected] http://lists.syncevolution.org/listinfo/syncevolution
