EvolutionSyncSource Class Reference

#include <EvolutionSyncSource.h>

Inheritance diagram for EvolutionSyncSource:

Inheritance graph
[legend]
Collaboration diagram for EvolutionSyncSource:

Collaboration graph
[legend]

List of all members.

Classes

struct  Database
class  Items

Public Types

typedef vector< DatabaseDatabases

Public Member Functions

 EvolutionSyncSource (const EvolutionSyncSourceParams &params)
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
Todo:
getFirstItemKey() and getNextItemKey() are marked for removal and will be replaced by removeAllItems(). Remove the calls when they are no longer needed. In the meantime implement them with m_allItems.


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 SourceRegistrygetSourceRegistry ()
static TestRegistrygetTestRegistry ()
static EvolutionSyncSourcecreateSource (const EvolutionSyncSourceParams &params, bool error=true)
static EvolutionSyncSourcecreateTestingSource (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


Detailed Description

SyncEvolution accesses all sources through this interface. This class also implements common functionality for all SyncSources:

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.


Member Typedef Documentation

Definition at line 339 of file EvolutionSyncSource.h.


Constructor & Destructor Documentation

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.


Member Function Documentation

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.

Parameters:
item the item as sent by the server
Returns:
SyncML status code

Implements SyncSource.

Reimplemented in TestEvolutionSyncSource.

Definition at line 340 of file EvolutionSyncSource.cpp.

References addItemThrow().

virtual int EvolutionSyncSource::addItemThrow ( SyncItem &  item  )  [pure virtual]

Implemented in EvolutionContactSource, and TestEvolutionSyncSource.

Referenced by addItem().

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.

Returns:
- 0 on success, an error otherwise

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

Parameters:
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:

  • content
  • UID
  • mime type

Parameters:
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

Parameters:
error throw a runtime error describing what the problem is if no matching source is found
Returns:
NULL if no source can handle the given type

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.

Parameters:
error throw a runtime error describing what the problem is if no matching source is found
Returns:
NULL if no source can handle the given type

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.

Parameters:
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]

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

Returns:
- 0 on success, an error otherwise

Reimplemented from SyncSource.

Reimplemented in TestEvolutionSyncSource.

Definition at line 315 of file EvolutionSyncSource.cpp.

References endSyncThrow(), and handleException().

virtual void EvolutionSyncSource::endSyncThrow (  )  [pure virtual]

Implemented in EvolutionContactSource, and TestEvolutionSyncSource.

Referenced by endSync().

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]

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]

const char* EvolutionSyncSource::getName (  )  throw () [inline]

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]

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.

Returns:
0 for success, non-zero for failure

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]

Reimplemented in TestEvolutionSyncSource.

Definition at line 330 of file EvolutionSyncSource.cpp.

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>

Parameters:
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>="">

Parameters:
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.

Parameters:
item the item as sent by the server
Returns:
SyncML status code

Implements SyncSource.

Reimplemented in TestEvolutionSyncSource.

Definition at line 345 of file EvolutionSyncSource.cpp.

References updateItemThrow().

virtual int EvolutionSyncSource::updateItemThrow ( SyncItem &  item  )  [pure virtual]

Implemented in EvolutionContactSource, and TestEvolutionSyncSource.

Referenced by updateItem().


Member Data Documentation

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]

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().


The documentation for this class was generated from the following files:

Generated on Sat Oct 18 17:17:04 2008 for SyncEvolution and Funambol by  doxygen 1.5.7.1