SYNC_SAVE_ACTION 列挙体

変更によって示されるアクションの種類を表します。

typedef enum
{
  SSA_CREATE,
  SSA_UPDATE_VERSION_ONLY,
  SSA_UPDATE_VERSION_AND_DATA,
  SSA_UPDATE_VERSION_AND_MERGE_DATA,
  SSA_DELETE_AND_STORE_TOMBSTONE,
  SSA_DELETE_AND_REMOVE_TOMBSTONE,
  SSA_RENAME_SOURCE_AND_UPDATE_VERSION_AND_DATA,
  SSA_RENAME_DESTINATION_AND_UPDATE_VERSION_AND_DATA,
  SSA_DELETE_CONFLICTING_AND_SAVE_SOURCE_ITEM,
  SSA_STORE_MERGE_TOMBSTONE,
  SSA_CHANGE_ID_UPDATE_VERSION_AND_MERGE_DATA,
  SSA_CHANGE_ID_UPDATE_VERSION_AND_SAVE_DATA,
  SSA_CHANGE_ID_UPDATE_VERSION_AND_DELETE_AND_STORE_TOMBSTONE,
  SSA_CHANGE_ID_UPDATE_VERSION_ONLY,
  SSA_CREATE_GHOST,
  SSA_GHOST_ITEM,
  SSA_UNGHOST_ITEM,
  SSA_UPDATE_GHOST,
  SSA_DELETE_GHOST_AND_STORE_TOMBSTONE,
  SSA_DELETE_GHOST_WITHOUT_TOMBSTONE
}  SYNC_SAVE_ACTION;

メンバー

  • SSA_CREATE
    項目は、新しく、同期先項目ストアで作成されます。 
  • SSA_UPDATE_VERSION_ONLY
    項目データは、同期先項目ストアで変更されません。バージョンは、同期先メタデータで上書きされます。このアクションは、同期先プロバイダーの項目が、競合で優先されるデータとして選択されたときにも発生します。
  • SSA_UPDATE_VERSION_AND_DATA
    項目データは、同期先項目ストアに適用されます。既存のデータは上書きされます。提供されたバージョンは、同期先メタデータの既存のバージョンを上書きします。このアクションは、同期元レプリカにおける項目の作成、項目の更新、または変更単位の更新に対応します。このアクションは、同期元プロバイダーの項目が、競合で優先されるデータとして選択されたときにも発生します。
  • SSA_UPDATE_VERSION_AND_MERGE_DATA
    項目データは、同期先項目ストアに適用されます。既存の項目データは、一部のプロバイダー固有のメソッドを使用して、更新された項目データにマージされます。バージョンは、同期先メタデータの既存のバージョンを上書きします。このアクションは、競合の解決アクションが SRA_MERGE である場合に発生します。
  • SSA_DELETE_AND_STORE_TOMBSTONE
    項目は、同期先項目ストアから削除されます。廃棄標識は、同期先メタデータに保存されます。このアクションは、同期元レプリカから削除された項目に対応します。
  • SSA_DELETE_AND_REMOVE_TOMBSTONE
    項目は、同期先項目ストアから削除されます。廃棄標識は、同期先メタデータに保持されません。同期先メタデータの項目の廃棄標識が存在する場合、廃棄標識を削除する必要があります。このアクションは、同期元レプリカが廃棄標識をクリーンアップした項目削除に対応し、忘れられたナレッジの復旧中に呼び出されます。
  • SSA_RENAME_SOURCE_AND_UPDATE_VERSION_AND_DATA
    同期元プロバイダーから送信された変更は、同期先レプリカで競合する項目と競合することがないように名前が変更されます。また、同期元の変更は同期先レプリカに適用されます。
  • SSA_RENAME_DESTINATION_AND_UPDATE_VERSION_AND_DATA
    同期先レプリカで競合している項目は、同期元プロバイダーから送信された変更と競合しないように名前が変更されます。また、同期元の変更が同期先レプリカに適用されます。
  • SSA_DELETE_CONFLICTING_AND_SAVE_SOURCE_ITEM
    同期元の変更が同期先レプリカに適用され、競合する同期先項目が同期先レプリカから削除されます。
  • SSA_STORE_MERGE_TOMBSTONE
    マージ廃棄標識を同期先メタデータに格納します。優先されない項目 ID として id1、優先される項目 ID として id2 を指定するマージ アクションを考えてみます。マージ廃棄標識には、優先されない項目 ID として id1、優先される項目 ID として id2 が含まれます。優先されない項目 ID として id1 を含み、さらに、優先される項目 ID として別の項目 ID id3 を含む同期先レプリカにマージ廃棄標識が既に存在する場合は、次の手順を実行します。

    1. id2 が id3 より小さい場合は、2 つのマージ廃棄標識を作成して格納します。一方のマージ廃棄標識には、優先されない項目 ID として id1、優先される項目 ID として id2 が含まれます。もう一方のマージ廃棄標識には、優先されない項目 ID として id2、優先される項目 ID として id3 が含まれます。この 2 つ目のマージ廃棄標識は既に存在する可能性があります。この場合、このマージ廃棄標識はそのまま残るだけです。このようにして、一連のマージ廃棄標識が作成され、項目 ID で順序付けられます。

    2. id3 が id2 より小さい場合は、エラーを返します。

  • SSA_CHANGE_ID_UPDATE_VERSION_AND_MERGE_DATA
    同期元項目のデータが同期先項目と結合されます。SSA_STORE_MERGE_TOMBSTONE に関して説明した手順に従って、優先されない項目 ID のマージ廃棄標識を格納します。
  • SSA_CHANGE_ID_UPDATE_VERSION_AND_SAVE_DATA
    SSA_STORE_MERGE_TOMBSTONE に関して説明した手順に従って、優先されない項目 ID のマージ廃棄標識を格納します。
  • SSA_CHANGE_ID_UPDATE_VERSION_AND_DELETE_AND_STORE_TOMBSTONE
    SSA_STORE_MERGE_TOMBSTONE に関して説明した手順に従って、優先されない項目 ID のマージ廃棄標識を格納します。優先される項目 ID によって識別された項目を削除して、その廃棄標識を格納します。
  • SSA_CHANGE_ID_UPDATE_VERSION_ONLY
    SSA_STORE_MERGE_TOMBSTONE に関して説明した手順に従って、優先されない項目 ID のマージ廃棄標識を格納します。優先される項目の変更のメタデータのみを適用します。
  • SSA_CREATE_GHOST
    項目の非実体を作成します。非実体とは、その項目が最近フィルターに含まれていたかどうかを示す値と除外バージョンの両方を含む項目です。除外バージョンは、項目をフィルターから除外した変更のバージョンを示します。
  • SSA_GHOST_ITEM
    アクティブな項目を非実体に変更します。これを行うには、項目が最近フィルターに含まれていたことを示す値を格納して、この変更のバージョンを項目の除外バージョンとして格納し、項目ストアから項目データを削除します。
  • SSA_UNGHOST_ITEM
    非実体の項目をアクティブ化します。これを行うには、メタデータから除外バージョンを削除し、項目データを項目ストアに格納します。
  • SSA_UPDATE_GHOST
    非実体の項目のバージョンを更新します。これは、除外バージョンではなく、項目の現在のバージョンへの更新です。
  • SSA_DELETE_GHOST_AND_STORE_TOMBSTONE
    非実体の項目を廃棄標識に変更します。これは、項目が削除されたことを示します。そのためには、項目が削除されたことを示す値を格納します。
  • SSA_DELETE_GHOST_WITHOUT_TOMBSTONE
    メタデータ ストアから非実体の項目を削除し、項目の廃棄標識を格納しません。

解説

プロバイダーが変更バッチ全体のトランザクションを使用しない場合、プロバイダーは、ISaveChangeContext オブジェクトから更新されたナレッジを取得して、変更の適用と同時にこのナレッジを保存する必要があります。

必要条件

ヘッダー : Synchronization.h

参照

リファレンス

ISaveChangeWithChangeUnitsContext インターフェイス
ISynchronousNotifyingChangeApplierTarget インターフェイス
IAsynchronousNotifyingChangeApplierTarget インターフェイス
IFeedBuilder インターフェイス

概念

Sync Framework のコア コンポーネント