Export (0) Print
Expand All

SyncAgent Class

The SyncAgent object orchestrates synchronization.

System.Object
  Microsoft.Synchronization.SyncAgent

Namespace:  Microsoft.Synchronization
Assembly:  Microsoft.Synchronization.Data (in Microsoft.Synchronization.Data.dll)

public class SyncAgent : IDisposable

The SyncAgent type exposes the following members.

  NameDescription
Public methodSyncAgent()Initializes a new instance of the SyncAgent class by using default values.
Public methodSyncAgent(SyncProvider, SyncProvider)Initializes a new instance of the SyncAgent class by using local synchronization provider and remote synchronization provider parameters.
Top

  NameDescription
Public propertyConfigurationGets a SyncConfiguration object that contains information about tables and synchronization parameters.
Public propertyLocalProviderGets or sets an object derived from ClientSyncProvider that is used to communicate with the local data store.
Public propertyRemoteProviderGets or sets an object derived from ServerSyncProvider that is used to communicate with the remote data store.
Public propertySessionStateGets or sets a SyncSessionState object that is used to define whether the session is currently synchronizing.
Public propertySyncStatisticsGets a SyncStatistics object that represents statistics for a synchronization session.
Top

  NameDescription
Public methodDispose()Releases all resources used by the SyncAgent.
Protected methodDispose(Boolean)Releases the unmanaged resources used by the SyncAgent, and optionally releases the managed resources.
Public methodEquals (Inherited from Object.)
Protected methodFinalize (Inherited from Object.)
Public methodGetHashCode (Inherited from Object.)
Public methodGetType (Inherited from Object.)
Protected methodMemberwiseClone (Inherited from Object.)
Protected methodOnSessionProgressRaises the SessionProgress event.
Protected methodOnSessionStateChangedRaises the StateChanged event.
Public methodSynchronizeSynchronizes data between the local and remote data stores.
Public methodToString (Inherited from Object.)
Top

  NameDescription
Public eventSessionProgressOccurs during synchronization: after metadata is read at the client, after metadata is written, after changes are downloaded, and after changes are uploaded.
Public eventStateChangedOccurs when there is a change in the synchronization session state.
Top

The SyncAgent loops through each of the tables to be synchronized and calls the client synchronization provider to retrieve and apply changes at the client database. Then it calls the server synchronization provider to retrieve and apply changes at the server database.

The following code example creates a class that derives from SyncAgent. The class instantiates a client synchronization provider and a server synchronization provider, creates a synchronization group, and adds the Customer table. When adding the table, synchronization direction and a table creation option are also specified. To view this code in the context of a complete example, see How to: Exchange Bidirectional Incremental Data Changes Between a Client and Server.

public class SampleSyncAgent : SyncAgent
{
    public SampleSyncAgent()
    {            
        //Instantiate a client synchronization provider and specify it
        //as the local provider for this synchronization agent.
        this.LocalProvider = new SampleClientSyncProvider();

        //Instantiate a server synchronization provider and specify it
        //as the remote provider for this synchronization agent.
        this.RemoteProvider = new SampleServerSyncProvider();

        //Create a Customer SyncGroup. This is not required
        //for the single table we are synchronizing; it is typically
        //used so that changes to multiple related tables are 
        //synchronized at the same time.
        SyncGroup customerSyncGroup = new SyncGroup("Customer");

        //Add the Customer table: specify a synchronization direction of
        //Bidirectional, and that an existing table should be dropped.
        SyncTable customerSyncTable = new SyncTable("Customer");
        customerSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable;
        customerSyncTable.SyncDirection = SyncDirection.Bidirectional;
        customerSyncTable.SyncGroup = customerSyncGroup;
        this.Configuration.SyncTables.Add(customerSyncTable);
    }
}


Public Class SampleSyncAgent
    Inherits SyncAgent

    Public Sub New()
        'Instantiate a client synchronization provider and specify it
        'as the local provider for this synchronization agent.
        Me.LocalProvider = New SampleClientSyncProvider()

        'Instantiate a server synchronization provider and specify it
        'as the remote provider for this synchronization agent.
        Me.RemoteProvider = New SampleServerSyncProvider()

        'Create a Customer SyncGroup. This is not required
        'for the single table we are synchronizing; it is typically
        'used so that changes to multiple related tables are 
        'synchronized at the same time.
        Dim customerSyncGroup As New SyncGroup("Customer")

        'Add the Customer table: specify a synchronization direction of
        'Bidirectional, and that an existing table should be dropped.
        Dim customerSyncTable As New SyncTable("Customer")
        customerSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable
        customerSyncTable.SyncDirection = SyncDirection.Bidirectional
        customerSyncTable.SyncGroup = customerSyncGroup
        Me.Configuration.SyncTables.Add(customerSyncTable)

    End Sub 'New
End Class 'SampleSyncAgent


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft