Поделиться через


Перечисление 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
    Сохраните отметку полного удаления слиянием в метаданных назначения. Рекомендуется действие слияния, которое указывает id1 в качестве идентификатора проигравшего элемента, а id2 в качестве идентификатора выигравшего элемента. В отметке полного удаления слиянием содержится id1 в качестве идентификатора проигравшего элемента и id2 в качестве идентификатора выигравшего элемента. Если в реплике назначения уже существует отметка полного удаления слиянием, содержащая id1 в качестве идентификатора проигравшего элемента и другой идентификатор id3 в качестве идентификатора выигравшего элемента, выполните следующие действия.

    1. Если значение id2 меньше id3, создайте и сохраните две отметки полного удаления слиянием. Одна отметка полного удаления содержит id1 в качестве идентификатора проигравшего элемента и id2 в качестве идентификатора выигравшего элемента. Другая отметка полного удаления содержит id2 в качестве идентификатора проигравшего элемента и id3 в качестве идентификатора выигравшего элемента. Эта вторая отметка полного удаления может уже существовать, и в таком случае ее нужно оставить без изменений. В этом случае создается цепочка отметок полного удаления слиянием в порядке идентификаторов элементов.

    2. Если значение id3 меньше id2, следует вернуть ошибку.

  • SSA_CHANGE_ID_UPDATE_VERSION_AND_MERGE_DATA
    Данные из исходного элемента объединяются с элементом назначения. Сохраните отметку полного удаления слиянием для идентификатора проигравшего элемента, выполнив действия, аналогичные описанным для SSA_STORE_MERGE_TOMBSTONE.
  • SSA_CHANGE_ID_UPDATE_VERSION_AND_SAVE_DATA
    Сохраните отметку полного удаления слиянием для идентификатора проигравшего элемента, выполнив действия, аналогичные описанным для SSA_STORE_MERGE_TOMBSTONE.
  • SSA_CHANGE_ID_UPDATE_VERSION_AND_DELETE_AND_STORE_TOMBSTONE
    Сохраните отметку полного удаления слиянием для идентификатора проигравшего элемента, выполнив действия, аналогичные описанным для SSA_STORE_MERGE_TOMBSTONE. Удалите элемент, соответствующий идентификатору выигравшего элемента, и сохраните для него отметку полного удаления.
  • SSA_CHANGE_ID_UPDATE_VERSION_ONLY
    Сохраните отметку полного удаления слиянием для идентификатора проигравшего элемента, выполнив действия, аналогичные описанным для SSA_STORE_MERGE_TOMBSTONE. Примените только метаданные для изменения выигравшего элемента.
  • 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