Retrieve the synchronization status.
Synchronize Status Listener is mainly for debugging and performance measuring purposes to monitor stages of a synchronize session. It could also be used in UI for synchronization progress status. Below is a sample Synchronize Status Listener.
public class MySyncStatusListener : SyncStatusListener { long start; public MySyncStatusListener() { start = DateTime.Now.Ticks; } public virtual bool ObjectSyncStatus(ObjectSyncStatusData statusData) { long now = DateTime.Now.Ticks; long interval = now - start; start = now; String infoMessage; SyncStatusState syncState = statusData.State; switch (syncState) { case SyncStatusState.SyncStarting: infoMessage = "START [" + interval + "]"; break; case SyncStatusState.ApplicationDataUploading: infoMessage = "DATA UPLOADING [" + interval + "] " + statusData.CurrentMBO + ": (S>" + statusData.SentBytes + " R<" + statusData.ReceivedBytes + ")"; break; case SyncStatusState.ApplicationDataUploadingAcknowledgementReceived: infoMessage = "RECEIVING UPLOAD ACK [" + interval + "]"; break; case SyncStatusState.ApplicationDataUploadingDone: infoMessage = "UPLOAD DONE [" + interval + "] " + statusData.CurrentMBO + ": (S>" + statusData.SentBytes + " R<" + statusData.ReceivedBytes + ")"; break; case SyncStatusState.ApplicationDataDownloading: infoMessage = "DATA DOWNLOADING[" + interval + "] " + statusData.CurrentMBO + ": (S>" + statusData.SentBytes + " R<" + statusData.ReceivedBytes + ")"; break; case SyncStatusState.ApplicationSyncDisconnecting: infoMessage = "DISCONNECTING [" + interval + "]"; break; case SyncStatusState.ApplicationSyncCanceled: infoMessage = "SYNC CANCELED [" + interval + "]"; break; case SyncStatusState.ApplicationDataDownloadingDone: infoMessage = "DATA DOWNLOADING DONE [" + interval + "]"; break; case SyncStatusState.ApplicationSyncDone: infoMessage = "DONE [" + interval + "]"; break; default: infoMessage = "STATE" + syncState + "[" + interval + "]"; break; } LogMessage(infoMessage); return false; } }