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