SYNC_CONSTRAINT_RESOLVE_ACTION Enumeration

Represents actions that are taken to resolve a specific constraint conflict.

Syntax

typedef enum
{
  SCRA_DEFER,
  SCRA_ACCEPT_DESTINATION_PROVIDER,
  SCRA_ACCEPT_SOURCE_PROVIDER,
  SCRA_TRANSFER_AND_DEFER,
  SCRA_MERGE,
  SCRA_RENAME_SOURCE,
  SCRA_RENAME_DESTINATION
} SYNC_CONSTRAINT_RESOLVE_ACTION;

Members

Term

Definition

SCRA_DEFER

Ignore the conflict and do not apply the change. The change applier does not pass the conflict data to the destination provider.

SCRA_ACCEPT_DESTINATION_PROVIDER

The change made on the destination replica always wins. The change applier passes the source change to the ISynchronousNotifyingChangeApplierTarget::SaveChange method and specifies a save action of SSA_DELETE_AND_STORE_TOMBSTONE. The destination provider creates a tombstone for the source change. When the destination acts as the source in a later synchronization, it will enumerate a change that represents the deletion of the source item, and so remove it from the synchronization community.

SCRA_ACCEPT_SOURCE_PROVIDER

The change made on the source replica always wins. The change applier passes the change to the SaveChange method and specifies a save action of SSA_DELETE_CONFLICTING_AND_SAVE_SOURCE_ITEM. The source change is applied to the destination replica and the conflicting destination item is deleted from the destination replica.

SCRA_TRANSFER_AND_DEFER

Log the conflict and do not apply the change. The change applier passes the conflict data to the ISynchronousNotifyingChangeApplierTarget2::SaveConstraintConflict method, which saves the conflict in a conflict log. For more information on logging conflicts, see Logging and Managing Conflicts.

SCRA_MERGE

The data from the source item is combined with the destination item. The change applier passes the source replica's change data to the SaveChange method and specifies a save action of SSA_CHANGE_ID_UPDATE_VERSION_AND_MERGE_DATA. For details, see the Merging Conflicting Items section of Detecting and Resolving Constraint Conflicts.

SCRA_RENAME_SOURCE

The change sent from the source provider is renamed so that it no longer collides with the conflicting item on the destination replica, and the source change is applied to the destination replica. The change applier passes the change to the SaveChange method and specifies a save action of SSA_RENAME_SOURCE_AND_UPDATE_VERSION_AND_DATA.

SCRA_RENAME_DESTINATION

The conflicting item on the destination replica is renamed so that it no longer collides with the change sent from the source provider, and the source change is applied to the destination replica. The change applier passes the change to the SaveChange method and specifies a save action of SSA_RENAME_DESTINATION_AND_UPDATE_VERSION_AND_DATA.

Remarks

The members of SYNC_CONSTRAINT_RESOLVE_ACTION specify the action that the change applier takes to resolve constraint conflicts. Constraint conflicts are conflicts that violate constraints that are put on items or change units, such as the relationship of folders or the location of identically named data within a file system. When a collision conflict resolution policy is specified, the constraint conflict resolution action is specified by the change applier when a collision constraint conflict occurs. Otherwise, the constraint conflict resolution action is specified by the synchronization application when it is notified that a constraint conflict has occurred.

For more information on constraint conflicts, see Detecting and Resolving Constraint Conflicts.

Requirements

Header: Synchronization.h

See Also

Concepts

Sync Framework Core Components