Hi,
Please find attached a patch to port the EDS calendar backend from the
ECal API to ECalClient when using EDS >= v3.2.
A view is used to list the components but no optimization is made yet
because e_cal_client_view_set_fields_of_interest() is not ready for
it.
***
[PATCH] Support for the new ECalClient API in EDS 3.2
SyncEvolution EDS backend currently uses the ECal API which is
deprecated as of EDS v3.2 and replaced by the new ECalClient API.
This patch brings support for this new ECalClient API (when EDS
3.2 is detected at compile time).
The new code based on the ECalClient API will enable a few
optimizations, especially the partial fetching of components to
avoid useless DBus trafic. This results in better component change
tracking by fetching only the UID/RID/REV attributes for each
component.
Note: The new code uses the new GLibSupport header instead of the
deprecated SmartPointer (eptr).
***
The eds_event tests are passing:
Client::Source::eds_event::testOpen okay
Client::Source::eds_event::testIterateTwice okay
Client::Source::eds_event::testSimpleInsert okay
Client::Source::eds_event::testLocalDeleteAll okay
Client::Source::eds_event::testComplexInsert okay
Client::Source::eds_event::testLocalUpdate okay
Client::Source::eds_event::testChanges okay
Client::Source::eds_event::testImport okay
Client::Source::eds_event::testImportDelete okay
Client::Source::eds_event::testManyChanges okay
Client::Source::eds_event::testLinkedItemsParent okay
Client::Source::eds_event::testLinkedItemsChild okay
Client::Source::eds_event::testLinkedItemsParentChild okay
Client::Source::eds_event::testLinkedItemsChildParent okay
Client::Source::eds_event::testLinkedItemsChildChangesParent okay
Client::Source::eds_event::testLinkedItemsRemoveParentFirst okay
Client::Source::eds_event::testLinkedItemsRemoveNormal okay
Client::Source::eds_event::testLinkedItemsInsertParentTwice okay
Client::Source::eds_event::testLinkedItemsInsertChildTwice okay
Client::Source::eds_event::testLinkedItemsParentUpdate okay
Client::Source::eds_event::testLinkedItemsUpdateChild okay
Client::Source::eds_event::testLinkedItemsInsertBothUpdateChild okay
Client::Source::eds_event::testLinkedItemsInsertBothUpdateParent okay
OK (23)
***
Note that the EDS patches attached to
https://bugzilla.gnome.org/show_bug.cgi?id=655986 are required for the
tests to pass (with or without my changes).
Also note that while porting to the ECalClient API, I found the
following bug in EDS (several tests don't pass without this fix):
https://bugzilla.gnome.org/show_bug.cgi?id=656207
Kr,
--
Dr. Christophe Dumez
Linux Software Engineer
Intel Finland Oy - Open Source Technology Center