#include <EvolutionSyncSource.h>
Classes | |
struct | Database |
class | Items |
Public Types | |
typedef vector< Database > | Databases |
Public Member Functions | |
EvolutionSyncSource (const EvolutionSyncSourceParams ¶ms) | |
virtual | ~EvolutionSyncSource () |
virtual Databases | getDatabases ()=0 |
virtual void | open ()=0 |
virtual SyncItem * | createItem (const string &uid)=0 |
virtual void | close ()=0 |
virtual void | exportData (ostream &out)=0 |
virtual string | fileSuffix () const =0 |
virtual const char * | getMimeType () const =0 |
virtual const char * | getMimeVersion () const =0 |
virtual const char * | getSupportedTypes () const =0 |
void | resetItems () |
bool | hasFailed () |
void | setFailed (bool failed) |
void | handleException () |
void | sleepSinceModification (int seconds) |
void | databaseModified () |
virtual int | removeAllItems () throw () |
const char * | getName () throw () |
virtual void | beginSyncThrow (bool needAll, bool needPartial, bool deleteLocal)=0 |
default implementation of SyncSource iterators | |
| |
virtual SyncItem * | getFirstItem () throw () |
virtual SyncItem * | getNextItem () throw () |
virtual SyncItem * | getFirstNewItem () throw () |
virtual SyncItem * | getNextNewItem () throw () |
virtual SyncItem * | getFirstUpdatedItem () throw () |
virtual SyncItem * | getNextUpdatedItem () throw () |
virtual SyncItem * | getFirstDeletedItem () throw () |
virtual SyncItem * | getNextDeletedItem () throw () |
virtual SyncItem * | getFirstItemKey () throw () |
virtual SyncItem * | getNextItemKey () throw () |
SyncSource methods that are provided by EvolutionSyncSource | |
and implemented via the corresponding *Throw() calls | |
virtual int | beginSync () throw () |
virtual int | endSync () throw () |
virtual void | setItemStatus (const char *key, int status) throw () |
virtual int | addItem (SyncItem &item) throw () |
virtual int | updateItem (SyncItem &item) throw () |
virtual int | deleteItem (SyncItem &item) throw () |
source specific part of endSync/setItemStatus/addItem/updateItem/deleteItem: | |
throw exception in case of error | |
virtual void | endSyncThrow ()=0 |
virtual void | setItemStatusThrow (const char *key, int status) |
virtual int | addItemThrow (SyncItem &item)=0 |
virtual int | updateItemThrow (SyncItem &item)=0 |
virtual int | deleteItemThrow (SyncItem &item)=0 |
log a one-line info about an item | |
The first two have to provided by derived classes because only they know how to present the item to the user. When being passed a SyncItem note that it may or may not contain data.
The third version is an utility function which is provided for derived classes. It does the right thing for vCard, vCalendar and plain text (in a crude way, without really parsing them), but needs access to the item data. | |
virtual void | logItem (const string &uid, const string &info, bool debug=false)=0 |
virtual void | logItem (const SyncItem &item, const string &info, bool debug=false)=0 |
virtual void | logItemUtil (const string data, const string &mimeType, const string &mimeVersion, const string &uid, const string &info, bool debug=false) |
Static Public Member Functions | |
static SourceRegistry & | getSourceRegistry () |
static TestRegistry & | getTestRegistry () |
static EvolutionSyncSource * | createSource (const EvolutionSyncSourceParams ¶ms, bool error=true) |
static EvolutionSyncSource * | createTestingSource (const string &name, const string &type, bool error, const char *prefix=getenv("CLIENT_TEST_EVOLUTION_PREFIX")) |
Protected Member Functions | |
void | throwError (const string &action, int error) |
void | throwError (const string &failure) |
Protected Attributes | |
const string | m_changeId |
Items | m_allItems |
Items | m_newItems |
Items | m_updatedItems |
Items | m_deletedItems |
bool | m_isModified |
The default interface assumes that the backend's beginSyncThrow() finds all items as well as new/modified/deleted ones and stores their UIDs in the respective lists. Then the Items iterators just walk through these lists, creating new items via createItem().
Error reporting is done via the Log class and this instance then just tracks whether any error has occurred. If that is the case, then the caller has to assume that syncing somehow failed and a full sync is needed the next time.
It also adds Evolution specific interfaces and utility functions.
Definition at line 298 of file EvolutionSyncSource.h.
typedef vector<Database> EvolutionSyncSource::Databases |
Definition at line 339 of file EvolutionSyncSource.h.
EvolutionSyncSource::EvolutionSyncSource | ( | const EvolutionSyncSourceParams & | params | ) | [inline] |
Creates a new Evolution sync source.
Definition at line 304 of file EvolutionSyncSource.h.
References SyncSource::setConfig().
virtual EvolutionSyncSource::~EvolutionSyncSource | ( | ) | [inline, virtual] |
Definition at line 318 of file EvolutionSyncSource.h.
int EvolutionSyncSource::addItem | ( | SyncItem & | item | ) | throw () [virtual] |
Called by the sync engine to add an item that the server has sent. The sync source is expected to add it to its database, then set the key to the local key assigned to the new item. Alternatively the sync source can match the new item against one of the existing items and return that key.
item | the item as sent by the server |
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 340 of file EvolutionSyncSource.cpp.
References addItemThrow().
virtual int EvolutionSyncSource::addItemThrow | ( | SyncItem & | item | ) | [pure virtual] |
int EvolutionSyncSource::beginSync | ( | ) | throw () [virtual] |
Called by the engine from inside SyncClient::sync() at the begin of the sync.
The SyncSource can do every initialization it needs. The server has been contacted, so in particular getSyncMode() can now be used to find out what the sync mode for this synchronization run will be. After this call the iterators for SyncItems must return valid results for the current sync mode.
The synchronization stops if this function return a non-zero value.
Reimplemented from SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 235 of file EvolutionSyncSource.cpp.
References beginSyncThrow(), SyncSource::getConfig(), getName(), SyncSource::getSyncMode(), handleException(), m_allItems, m_deletedItems, m_isModified, m_newItems, m_updatedItems, AbstractSyncSourceConfig::setLast(), EvolutionSyncClient::startLoopThread(), and throwError().
virtual void EvolutionSyncSource::beginSyncThrow | ( | bool | needAll, | |
bool | needPartial, | |||
bool | deleteLocal | |||
) | [pure virtual] |
source specific part of beginSync() - throws exceptions in case of error
needAll | fill m_allItems | |
needPartial | fill m_new/deleted/modifiedItems | |
deleteLocal | erase all items |
Implemented in EvolutionContactSource, and TestEvolutionSyncSource.
Referenced by beginSync().
virtual void EvolutionSyncSource::close | ( | ) | [pure virtual] |
closes the data source so that it can be reopened
Just as open() it should not affect the state of the database unless some previous action requires it.
Implemented in AddressBookSource, EvolutionCalendarSource, EvolutionContactSource, FileSyncSource, SQLiteContactSource, TestEvolutionSyncSource, and TrackingSyncSource.
virtual SyncItem* EvolutionSyncSource::createItem | ( | const string & | uid | ) | [pure virtual] |
Extract information for the item identified by UID and store it in a new SyncItem. The caller must free that item. May throw exceptions.
The information that has to be set in the new item is:
uid | identifies the item |
Implemented in AddressBookSource, EvolutionCalendarSource, EvolutionContactSource, EvolutionMemoSource, FileSyncSource, SQLiteContactSource, TestEvolutionSyncSource, and TrackingSyncSource.
Referenced by EvolutionSyncSource::Items::iterate().
EvolutionSyncSource * EvolutionSyncSource::createSource | ( | const EvolutionSyncSourceParams & | params, | |
bool | error = true | |||
) | [static] |
factory function for a EvolutionSyncSource that provides the source type specified in the params.m_nodes.m_configNode
error | throw a runtime error describing what the problem is if no matching source is found |
Definition at line 187 of file EvolutionSyncSource.cpp.
References getSourceRegistry(), EvolutionSyncSourceConfig::getSourceType(), EvolutionSyncSourceConfig::getSourceTypeString(), RegisterSyncSource::m_create, EvolutionSyncSourceParams::m_name, EvolutionSyncSourceParams::m_nodes, RegisterSyncSource::m_shortDescr, and throwError().
Referenced by createTestingSource(), SyncEvolutionCmdline::run(), and TestEvolutionSyncSource::TestEvolutionSyncSource().
EvolutionSyncSource * EvolutionSyncSource::createTestingSource | ( | const string & | name, | |
const string & | type, | |||
bool | error, | |||
const char * | prefix = getenv("CLIENT_TEST_EVOLUTION_PREFIX") | |||
) | [static] |
Factory function for a EvolutionSyncSource with the given name and handling the kind of data specified by "type" (e.g. "Evolution Contacts:text/x-vcard").
The source is instantiated with dummy configuration nodes under the pseudo server name "testing". This function is used for testing sync sources, not for real syncs. If the prefix is set, then <prefix>_<name>_1 is used as database, just as in the Client::Sync and Client::Source tests. Otherwise the default database is used.
error | throw a runtime error describing what the problem is if no matching source is found |
Definition at line 221 of file EvolutionSyncSource.cpp.
References SyncSource::config, createSource(), EvolutionSyncConfig::getSyncSourceNodes(), EvolutionSyncSourceConfig::setDatabaseID(), and EvolutionSyncSourceConfig::setSourceType().
Referenced by EvolutionContactTest::testImport(), EvolutionSQLiteContactsTest::testInstantiate(), FileSyncSourceUnitTest::testInstantiate(), EvolutionContactTest::testInstantiate(), EvolutionCalendarTest::testInstantiate(), EvolutionAddressbookTest::testInstantiate(), EvolutionCalendarTest::testOpenDefaultCalendar(), EvolutionCalendarTest::testOpenDefaultMemo(), EvolutionCalendarTest::testOpenDefaultTodo(), and EvolutionCalendarTest::testTimezones().
void EvolutionSyncSource::databaseModified | ( | ) |
Increments the time stamp of the latest database modification.
To be called after modifying the local database and before returning control to the caller.
Definition at line 424 of file EvolutionSyncSource.cpp.
int EvolutionSyncSource::deleteItem | ( | SyncItem & | item | ) | throw () [virtual] |
Called by the sync engine to update an item that the source already should have. The item's key is the local key of that item, no data is provided.
item | the item as sent by the server |
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 350 of file EvolutionSyncSource.cpp.
References deleteItemThrow().
virtual int EvolutionSyncSource::deleteItemThrow | ( | SyncItem & | item | ) | [pure virtual] |
Implemented in EvolutionContactSource, and TestEvolutionSyncSource.
Referenced by deleteItem(), and removeAllItems().
int EvolutionSyncSource::endSync | ( | ) | throw () [virtual] |
Called by the engine from inside SyncClient::sync() at the end of the sync.
The SyncSource can do any needed commit action to save the state of the items. The engine commits to the server the changes applied in the transaction only if this function return 0.
FIXME: the return code is currently ignored by the sync engine
Reimplemented from SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 315 of file EvolutionSyncSource.cpp.
References endSyncThrow(), and handleException().
virtual void EvolutionSyncSource::endSyncThrow | ( | ) | [pure virtual] |
virtual void EvolutionSyncSource::exportData | ( | ostream & | out | ) | [pure virtual] |
Dump all data from source unmodified into the given stream.
Implemented in AddressBookSource, EvolutionCalendarSource, EvolutionContactSource, TestEvolutionSyncSource, and TrackingSyncSource.
Referenced by SourceList::dumpDatabases().
virtual string EvolutionSyncSource::fileSuffix | ( | ) | const [pure virtual] |
file suffix for database files
Implemented in AddressBookSource, EvolutionCalendarSource, EvolutionContactSource, FileSyncSource, SQLiteContactSource, TestEvolutionSyncSource, and TrackingSyncSource.
virtual Databases EvolutionSyncSource::getDatabases | ( | ) | [pure virtual] |
returns a list of all know data sources for the kind of items supported by this sync source
Implemented in AddressBookSource, EvolutionCalendarSource, EvolutionContactSource, FileSyncSource, SQLiteContactSource, TestEvolutionSyncSource, and TrackingSyncSource.
virtual SyncItem* EvolutionSyncSource::getFirstDeletedItem | ( | ) | throw () [inline, virtual] |
Return the first SyncItem of updated one. It is used in case of fast sync and retrieve the new data source content.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 499 of file EvolutionSyncSource.h.
References m_deletedItems, and EvolutionSyncSource::Items::start().
virtual SyncItem* EvolutionSyncSource::getFirstItem | ( | ) | throw () [inline, virtual] |
Return the first SyncItem of all. It is used in case of slow sync and retrieve the entire data source content.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 493 of file EvolutionSyncSource.h.
References m_allItems, and EvolutionSyncSource::Items::start().
virtual SyncItem* EvolutionSyncSource::getFirstItemKey | ( | ) | throw () [inline, virtual] |
Return the key of the first SyncItem of all. It is used in case of refresh sync and retrieve all the keys of the data source.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 501 of file EvolutionSyncSource.h.
References m_allItems, and EvolutionSyncSource::Items::start().
virtual SyncItem* EvolutionSyncSource::getFirstNewItem | ( | ) | throw () [inline, virtual] |
Return the first SyncItem of new one. It is used in case of fast sync and retrieve the new data source content.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 495 of file EvolutionSyncSource.h.
References m_newItems, and EvolutionSyncSource::Items::start().
virtual SyncItem* EvolutionSyncSource::getFirstUpdatedItem | ( | ) | throw () [inline, virtual] |
Return the first SyncItem of updated one. It is used in case of fast sync and retrieve the new data source content.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 497 of file EvolutionSyncSource.h.
References m_updatedItems, and EvolutionSyncSource::Items::start().
virtual const char* EvolutionSyncSource::getMimeType | ( | ) | const [pure virtual] |
Returns the preferred mime type of the items handled by the sync source. Example: "text/x-vcard"
Implements EvolutionSyncSourceConfig.
Implemented in AddressBookSource, EvolutionCalendarSource, EvolutionContactSource, EvolutionMemoSource, FileSyncSource, SQLiteContactSource, TestEvolutionSyncSource, and TrackingSyncSource.
Referenced by EvolutionSyncSource::Items::iterate().
virtual const char* EvolutionSyncSource::getMimeVersion | ( | ) | const [pure virtual] |
Returns the version of the mime type used by client. Example: "2.1"
Implements EvolutionSyncSourceConfig.
Implemented in AddressBookSource, EvolutionCalendarSource, EvolutionContactSource, EvolutionMemoSource, FileSyncSource, SQLiteContactSource, TestEvolutionSyncSource, and TrackingSyncSource.
const char* EvolutionSyncSource::getName | ( | ) | throw () [inline] |
Disambiguate getName(): we have inherited it from both SyncSource and AbstractSyncSourceConfig. Both must return the same string.
Reimplemented from SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 535 of file EvolutionSyncSource.h.
Referenced by EvolutionCalendarSource::authenticate(), beginSync(), SQLiteContactSource::createItem(), EvolutionCalendarSource::deleteItem(), AddressBookSource::deleteItem(), EvolutionContactSource::deleteItemThrow(), SourceList::dumpLocalChanges(), SourceList::getSources(), SQLiteContactSource::logItem(), EvolutionContactSource::logItem(), EvolutionCalendarSource::logItem(), AddressBookSource::logItem(), logItemUtil(), SQLiteContactSource::open(), EvolutionContactSource::open(), SourceList::operator[](), EvolutionCalendarSource::removeEvents(), setItemStatusThrow(), EvolutionContactSource::setItemStatusThrow(), EvolutionCalendarSource::setItemStatusThrow(), SourceList::syncDone(), and throwError().
virtual SyncItem* EvolutionSyncSource::getNextDeletedItem | ( | ) | throw () [inline, virtual] |
Return the next SyncItem of updated one. It is used in case of fast sync and retrieve the new data source content.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 500 of file EvolutionSyncSource.h.
References EvolutionSyncSource::Items::iterate(), and m_deletedItems.
virtual SyncItem* EvolutionSyncSource::getNextItem | ( | ) | throw () [inline, virtual] |
Return the next SyncItem of all. It is used in case of slow sync and retrieve the entire data source content.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 494 of file EvolutionSyncSource.h.
References EvolutionSyncSource::Items::iterate(), and m_allItems.
virtual SyncItem* EvolutionSyncSource::getNextItemKey | ( | ) | throw () [inline, virtual] |
Return the key of the next SyncItem of all. It is used in case of refresh sync and retrieve all the keys of the data source.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 502 of file EvolutionSyncSource.h.
References EvolutionSyncSource::Items::iterate(), and m_allItems.
virtual SyncItem* EvolutionSyncSource::getNextNewItem | ( | ) | throw () [inline, virtual] |
Return the next SyncItem of new one. It is used in case of fast sync and retrieve the new data source content.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 496 of file EvolutionSyncSource.h.
References EvolutionSyncSource::Items::iterate(), and m_newItems.
virtual SyncItem* EvolutionSyncSource::getNextUpdatedItem | ( | ) | throw () [inline, virtual] |
Return the next SyncItem of updated one. It is used in case of fast sync and retrieve the new data source content.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 498 of file EvolutionSyncSource.h.
References EvolutionSyncSource::Items::iterate(), and m_updatedItems.
SourceRegistry & EvolutionSyncSource::getSourceRegistry | ( | ) | [static] |
SyncSource implementations must register themselves here via RegisterSyncSource
Definition at line 101 of file EvolutionSyncSource.cpp.
Referenced by createSource(), RegisterSyncSource::RegisterSyncSource(), and SyncEvolutionCmdline::run().
virtual const char* EvolutionSyncSource::getSupportedTypes | ( | ) | const [pure virtual] |
A string representing the source types (with versions) supported by the SyncSource. The string must be formatted as a sequence of "type:version" separated by commas ','. For example: "text/x-vcard:2.1,text/vcard:3.0". The version can be left empty, for example: "text/x-s4j-sifc:". Supported types will be sent as part of the DevInf.
Implements EvolutionSyncSourceConfig.
Implemented in AddressBookSource, EvolutionCalendarSource, EvolutionContactSource, EvolutionMemoSource, FileSyncSource, SQLiteContactSource, TestEvolutionSyncSource, and TrackingSyncSource.
TestRegistry & EvolutionSyncSource::getTestRegistry | ( | ) | [static] |
SyncSource tests are registered here by the constructor of RegisterSyncSourceTest
Definition at line 141 of file EvolutionSyncSource.cpp.
Referenced by RegisterSyncSourceTest::RegisterSyncSourceTest().
void EvolutionSyncSource::handleException | ( | ) |
Convenience function, to be called inside a catch() block of the sync source. Rethrows the exception to determine what it is, then logs it as an error and sets the state of the sync source to failed.
Definition at line 89 of file EvolutionSyncSource.cpp.
References setFailed().
Referenced by beginSync(), endSync(), EvolutionSyncSource::Items::iterate(), and removeAllItems().
bool EvolutionSyncSource::hasFailed | ( | ) | [inline] |
returns true iff some failure occured
Definition at line 417 of file EvolutionSyncSource.h.
Referenced by AddressBookSource::close().
virtual void EvolutionSyncSource::logItem | ( | const SyncItem & | item, | |
const string & | info, | |||
bool | debug = false | |||
) | [pure virtual] |
virtual void EvolutionSyncSource::logItem | ( | const string & | uid, | |
const string & | info, | |||
bool | debug = false | |||
) | [pure virtual] |
Implemented in AddressBookSource, EvolutionCalendarSource, EvolutionContactSource, FileSyncSource, SQLiteContactSource, TestEvolutionSyncSource, and TrackingSyncSource.
Referenced by EvolutionSyncSource::Items::addItem(), and removeAllItems().
void EvolutionSyncSource::logItemUtil | ( | const string | data, | |
const string & | mimeType, | |||
const string & | mimeVersion, | |||
const string & | uid, | |||
const string & | info, | |||
bool | debug = false | |||
) | [virtual] |
Definition at line 429 of file EvolutionSyncSource.cpp.
References getName().
Referenced by FileSyncSource::logItem().
virtual void EvolutionSyncSource::open | ( | ) | [pure virtual] |
Actually opens the data source specified in the constructor, will throw the normal exceptions if that fails. Should not modify the state of the sync source: that can be deferred until the server is also ready and beginSync() is called.
Implemented in AddressBookSource, EvolutionCalendarSource, EvolutionContactSource, FileSyncSource, SQLiteContactSource, TestEvolutionSyncSource, and TrackingSyncSource.
Referenced by EvolutionSyncClient::status(), and EvolutionSyncClient::sync().
int EvolutionSyncSource::removeAllItems | ( | ) | throw () [virtual] |
The client library invokes this call to delete all local items. SyncSources derived from EvolutionSyncSource should take care of that when beginSyncThrow() is called with deleteLocal == true and thus do not need to implement this method. If a derived source doesn't do that, then the implementation of this call will simply iterate over all stored LUIDs and remove them.
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 355 of file EvolutionSyncSource.cpp.
References deleteItemThrow(), handleException(), logItem(), m_allItems, and m_isModified.
void EvolutionSyncSource::resetItems | ( | ) |
resets the lists of all/new/updated/deleted items
Definition at line 81 of file EvolutionSyncSource.cpp.
References m_allItems, m_deletedItems, m_newItems, and m_updatedItems.
Referenced by EvolutionContactSource::endSyncThrow().
void EvolutionSyncSource::setFailed | ( | bool | failed | ) | [inline] |
Definition at line 418 of file EvolutionSyncSource.h.
Referenced by handleException(), setItemStatusThrow(), and throwError().
void EvolutionSyncSource::setItemStatus | ( | const char * | key, | |
int | status | |||
) | throw () [virtual] |
void EvolutionSyncSource::setItemStatusThrow | ( | const char * | key, | |
int | status | |||
) | [virtual] |
Reimplemented in EvolutionCalendarSource, EvolutionContactSource, and TrackingSyncSource.
Definition at line 400 of file EvolutionSyncSource.cpp.
References getName(), and setFailed().
void EvolutionSyncSource::sleepSinceModification | ( | int | seconds | ) |
Ensures that the requested amount of time has passed since the last modification of the local database.
This time stamp is automatically updated by addItem(), updateItem(), deleteItem(). A sync source which overrides these virtual functions (shouldn't be necessary!) or does other modifications has to call databaseModified() explicitly after each modification.
If the requested delay has already passed, this function returns immediately. Therefore delays requested by more than one active sync source don't add up.
The main usage for this functionality is change tracking via time stamps. In that case this function should be called in close().
Definition at line 415 of file EvolutionSyncSource.cpp.
Referenced by SQLiteContactSource::close(), FileSyncSource::close(), and EvolutionCalendarSource::close().
void EvolutionSyncSource::throwError | ( | const string & | failure | ) | [protected] |
throw an exception after an operation failed and remember that this instance has failed
output format: <source name>="">: <failure>
action | a string describing what was attempted *and* how it failed |
Definition at line 75 of file EvolutionSyncSource.cpp.
References getName(), setFailed(), and throwError().
void EvolutionSyncSource::throwError | ( | const string & | action, | |
int | error | |||
) | [protected] |
throw an exception after an operation failed and remember that this instance has failed
output format: <source name>="">: <action>: <error string>="">
action | a string describing the operation or object involved | |
error | the errno error code for the failure |
Definition at line 70 of file EvolutionSyncSource.cpp.
Referenced by EvolutionContactSource::addItemThrow(), beginSync(), EvolutionContactSource::beginSyncThrow(), AddressBookSource::close(), FileSyncSource::createItem(), EvolutionContactSource::createItem(), AddressBookSource::createItem(), createSource(), FileSyncSource::deleteItem(), EvolutionCalendarSource::deleteItem(), AddressBookSource::deleteItem(), EvolutionContactSource::deleteItemThrow(), EvolutionContactSource::endSyncThrow(), EvolutionCalendarSource::EvolutionCalendarSource(), EvolutionContactSource::exportData(), EvolutionCalendarSource::exportData(), FileSyncSource::FileSyncSource(), EvolutionContactSource::getDatabases(), EvolutionCalendarSource::getDatabases(), EvolutionCalendarSource::getItemID(), SQLiteContactSource::insertItem(), FileSyncSource::insertItem(), EvolutionMemoSource::insertItem(), EvolutionCalendarSource::insertItem(), AddressBookSource::insertItem(), EvolutionCalendarSource::listAllItems(), FileSyncSource::open(), EvolutionContactSource::open(), EvolutionCalendarSource::open(), AddressBookSource::open(), EvolutionContactSource::preparseVCard(), EvolutionCalendarSource::removeEvents(), EvolutionCalendarSource::retrieveItem(), EvolutionCalendarSource::retrieveItemAsString(), throwError(), and EvolutionContactSource::updateItemThrow().
int EvolutionSyncSource::updateItem | ( | SyncItem & | item | ) | throw () [virtual] |
Called by the sync engine to update an item that the source already should have. The item's key is the local key of that item.
item | the item as sent by the server |
Implements SyncSource.
Reimplemented in TestEvolutionSyncSource.
Definition at line 345 of file EvolutionSyncSource.cpp.
References updateItemThrow().
virtual int EvolutionSyncSource::updateItemThrow | ( | SyncItem & | item | ) | [pure virtual] |
Items EvolutionSyncSource::m_allItems [protected] |
UIDs of all/all new/all updated/all deleted items
Definition at line 665 of file EvolutionSyncSource.h.
Referenced by beginSync(), EvolutionContactSource::beginSyncThrow(), getFirstItem(), getFirstItemKey(), getNextItem(), getNextItemKey(), removeAllItems(), and resetItems().
const string EvolutionSyncSource::m_changeId [protected] |
Definition at line 627 of file EvolutionSyncSource.h.
Referenced by EvolutionContactSource::beginSyncThrow(), and EvolutionContactSource::endSyncThrow().
Items EvolutionSyncSource::m_deletedItems [protected] |
Definition at line 665 of file EvolutionSyncSource.h.
Referenced by beginSync(), EvolutionContactSource::beginSyncThrow(), getFirstDeletedItem(), getNextDeletedItem(), EvolutionSyncSource::Items::iterate(), and resetItems().
bool EvolutionSyncSource::m_isModified [protected] |
remembers whether items have been modified during the sync: if it is, then the destructor has to advance the change marker or these modifications will be picked up during the next two-way sync
Definition at line 676 of file EvolutionSyncSource.h.
Referenced by beginSync(), EvolutionContactSource::endSyncThrow(), and removeAllItems().
Items EvolutionSyncSource::m_newItems [protected] |
Definition at line 665 of file EvolutionSyncSource.h.
Referenced by beginSync(), EvolutionContactSource::beginSyncThrow(), getFirstNewItem(), getNextNewItem(), and resetItems().
Items EvolutionSyncSource::m_updatedItems [protected] |
Definition at line 665 of file EvolutionSyncSource.h.
Referenced by beginSync(), EvolutionContactSource::beginSyncThrow(), getFirstUpdatedItem(), getNextUpdatedItem(), and resetItems().