This change makes it possible to add a new backend without
changing any of the core files. It also gets rid of some
hacks (like -export-dynamic for the binary) by putting all
core SyncEvolution code into a library.
The transition is not quite complete: there are still
some lists of existing backends, which will be removed
soon. EvolutionSmartPtr.h and EvolutionSyncSource depend
on Evolution/GNOME libs, which forces all backends to
use the right -I flags.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@684 15ad00c4-1369-45f4-8270-35d70d36bdcd
- const SyncItem cleanup
- distinguish between added/merged in TrackingSyncSource::insertItem():
required for calendar events
- getData() util function not needed.
- TrackingSyncSource key/value strings can be arbitrary strings now.
- Clarified insertItem() semantic and errors.
- Added new required SyncSource::removeAllItems() call.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@574 15ad00c4-1369-45f4-8270-35d70d36bdcd
The API documentation of these calls doesn't say so explicitly, but it
seems that a combination of g_object_unref()/g_free()/g_list_free() is
necessary. Rewrote the eptr smart pointer so that different deleter
functions can be selected as template parameters.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@521 15ad00c4-1369-45f4-8270-35d70d36bdcd
- cleaned up passing of SyncSource creation parameters
- reads old configs and should also work with new layout (not tested yet)
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@507 15ad00c4-1369-45f4-8270-35d70d36bdcd
- moved unref() into global name space so that more unref() functions
can be added (otherwise local methods shadow the global functions)
- use eptr for SourceList (wasn't destructed in case of error otherwise and
logging in 0.4 pre continued to go to file)
- check for server configuration and abort in prepare if none given with
a suitable error message
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@215 15ad00c4-1369-45f4-8270-35d70d36bdcd
- copy original test cases to fit the name expected by TestEvolution and to have
them in the build directory
- handle merge with existing item in addItem(): return special status
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@71 15ad00c4-1369-45f4-8270-35d70d36bdcd
but manual tests show that it works in principle, albeit with some
loss of attributes in the server for calendars (time zone)
- removed "disabled" configuration option, use "sync = none" instead
- added selection of databases to synchronize via additional command
line parameters
Source:
- Refactored code so that EvolutionSyncSource contains the client-library
facing code and commong logging/error handling. EvolutionContactSource
and EvolutionCalendarSource (for both calendars and tasks) can now
indicate errors via exceptions in all functions.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@62 15ad00c4-1369-45f4-8270-35d70d36bdcd
added hack to make Evolution's vcard V3.0 compatible with Sync4j 2.3b3 (needs to be remove or made configurable)
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@8 15ad00c4-1369-45f4-8270-35d70d36bdcd
implemented the new begin/endSync() callbacks
explain the change tracking and error handling
-> copying from server works, the other way around fails, probably because of vcard 3.0 parsing problems on the server
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@6 15ad00c4-1369-45f4-8270-35d70d36bdcd