View stunning SlideShares in full-screen with the new iOS app!Introducing SlideShare for AndroidExplore all your favorite topics in the SlideShare appGet the SlideShare app to Save for Later — even offline
View stunning SlideShares in full-screen with the new Android app!View stunning SlideShares in full-screen with the new iOS app!
The SyncSource identifies the remote database that will be synchronized with the client database;
Any type of data (files, calendar events, Homer Object , etc.) can be synchronized, but there must be a proper SyncSource for each type, capable of extracting and storing the data for a real data store.
- Mergeable : used when the data synchronized supports the merge operation. The merge is performed when a conflict is detected in order to avoid a loss of whatever information. For instance, synchronizing the contacts, we can have the same contact updated on the server (we suppose a new address has been added) and on the client (we suppose a new phone has been added); in this case, we can merge the server contact and the client contact keeping the new address and the new phone
- Filterable: this interface should be used when the SyncSource supports the Filter (SyncML 1.2)
- mergeSyncItems : Called by the engine to merge the server item with a specific key with the content obtained from the client. This method must return true if the content has been changed. Moreover the item, resulting from the merge, will be sent back to the client.
A SyncSource (e.g. PIM SyncSource) can be developed using a three layer architecture
The SyncSource layer implements all methods prescribed by the SyncSource interface. It manages the SyncItem/SyncItemKey objects and converts them into “Foundation PIM objects” The Manager layer wraps/unwraps the “Foundation PIM objects” with additional backend-oriented data. The DAO layer manages the operations on the BackEnd