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
The intented behavior is that inactive sources can only be activated
by listing them explicitly after the server name. Fixed by moving
the handling of the sync mode override from the generic config
handling to EvolutionSyncClient, which knows about this special
semantic.
Minor code cleanup: avoid duplicating the "sync" string by
declaring the syncSourceProp as member of EvolutionSyncSourceConfig.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@626 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
- deviceId is at the end of the config now because it hardly ever has to be set
- evolutionsource can be left unset in most cases: the first Evolution database is
the default
- mark default data source when listing them
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@558 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
LOG_HAVE_SET_LOGGER and LOG_HAVE_DEVELOPER preprocessor symbols in
the new Log.h header file are checked to detect that.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@481 15ad00c4-1369-45f4-8270-35d70d36bdcd
Without the event loop SyncEvolution will get stuck again in EDS API calls
when the EDS dies, but that is the lesser evil.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@475 15ad00c4-1369-45f4-8270-35d70d36bdcd
- added dumping of local changes before sync (works best with logdir)
- added command line options:
--sync|-s <mode>
Temporarily synchronize the active sources in that mode. Useful
for a 'refresh-from-server' or 'refresh-from-client' sync which
clears all data at one end and copies all items from the other.
--status|-t
The changes made to local data since the last synchronization are
shown without starting a new one. This can be used to see in advance
whether the local data needs to be synchronized with the server.
--quiet|-q
Suppresses most of the normal output during a synchronization. The
log file still contains all the information.
--help|-h
Prints usage information.
--version
Prints the SyncEvolution version.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@449 15ad00c4-1369-45f4-8270-35d70d36bdcd
the fact that the synchronous EDS API calls block infinitely in that case.
- drive default glib event look in background thread
- listen for "backend-died" signals
- if triggered, print a message ("Evolution Data Server has died unexpectedly,
database no longer available.") and abort the process (other error handling is
impossible)
- for contacts instead of "database" "contacts" is printed
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@441 15ad00c4-1369-45f4-8270-35d70d36bdcd
throws exception although everything is fine - disabled exceptions in one case and replaced
with ANSI C calls in another
IPHONE define now in configure (cleaner).
Creating contacts twice (during dump and when sending) caused crash - ref counting problem?
Disabled any CFRelease() for now on iPhone.
compile error fix for Mac OS X (probably more necessary)
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@403 15ad00c4-1369-45f4-8270-35d70d36bdcd
loglevel is configurable
- fixed off-by-one counting of months in backup directory names
- only one example configuration per server, users typically do not
need the _1/2 suffices and the testing system no longer has to be
configured manually either
- documented the switch from the original SyncEvolution testing to its
successor, the generic Funambol C++ client testing framework
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@362 15ad00c4-1369-45f4-8270-35d70d36bdcd
properly and led to a direct dump of the error exception. Now the
error is logged first and the '.after' dump is skipped.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@320 15ad00c4-1369-45f4-8270-35d70d36bdcd
--enable-shared will build backends as modules which are loaded dynamically if possible (off by default)
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@315 15ad00c4-1369-45f4-8270-35d70d36bdcd