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;
}
}