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


Интерфейс IChangeApplicationServices

Представляет объект службы применения изменений, который можно использовать для выполнения отдельных действий по применению изменений.

interface IChangeApplicationServices : IUnknown

Элементы

Метод IChangeApplicationServices Описание

IChangeApplicationServices::Initialize

Инициализирует объект службы применения изменений. Этот метод должен вызываться до вызова любых других методов.

IChangeApplicationServices::BeginChangeApplication

Начинает обработку пакета изменений.

IChangeApplicationServices::BeginFullEnumerationChangeApplication

Начинает обработку набора изменений в ходе синхронизации восстановления.

IChangeApplicationServices::EndChangeApplication

Завершает обработку пакета изменений.

IChangeApplicationServices::EndFullEnumerationChangeApplication

Завершает обработку набора изменений в ходе синхронизации восстановления.

IChangeApplicationServices::SetDestinationKnowledge

Задает набор знаний назначения, который используется для вычисления обновленного набора знаний назначения в ходе применения изменений.

IChangeApplicationServices::GetUpdatedDestinationKnowledge

Возвращает обновленный набор знаний назначения, содержащий все изменения, примененные на данный момент.

IChangeApplicationServices::GetChangeApplicationContext

Возвращает объект, представляющий текущее изменение для применения.

IChangeApplicationServices::ReportItemChangeApplied

Уведомляет службу применения изменений об успешном применении изменения элемента в реплике назначения.

IChangeApplicationServices::ReportChangeUnitChangeApplied

Уведомляет службу применения изменений об успешном применении изменения базовой единицы в реплике назначения.

IChangeApplicationServices::ReportRecoverableErrorOnItemChange

Уведомляет службу применения изменений об устранимой ошибке, произошедшей, когда поставщик назначения применял изменение элемента.

IChangeApplicationServices::ReportRecoverableErrorOnChangeUnitChange

Уведомляет службу применения изменений об устранимой ошибке, произошедшей, когда поставщик назначения применял изменение базовой единицы.

Замечания

Интерфейс IChangeApplicationServices является частью службы применения изменений Sync Framework и используется в тех случаях, от поставщика требуется гибкость, которая не обеспечивается стандартным объектом применения изменений, реализованным в Sync Framework. Например, поставщик должен откладывать применение определенных изменений до завершения сеанса синхронизации. Стандартный объект применения изменений этого не позволяет. Поставщик может использовать службу применения изменений для обработки обнаружения конфликтов и вычисления набора знаний, сохранив способность откладывать изменения в случае необходимости.

Для поставщика, которому не требуется дополнительная гибкость службы применения изменений, может оказаться проще использовать стандартный объект применения изменений, например ISynchronousNotifyingChangeApplier.

Служба применения изменений обычно используется поставщиком назначения в рамках реализации методов IKnowledgeSyncProvider::ProcessChangeBatch и IKnowledgeSyncProvider::ProcessFullEnumerationChangeBatch. Для использования службы применения изменений выполните следующие действия.

  1. Получите объект IChangeApplicationServices путем передачи IID_IChangeApplicationServices методу IProviderSyncServices::CreateChangeApplier.

  2. Инициализируйте объект путем вызова метода IChangeApplicationServices::Initialize.

  3. Запустите обработку пакета изменений, вызвав метод IChangeApplicationServices::BeginChangeApplication, или запустите обработку пакета изменений для синхронизации восстановления, вызвав метод IChangeApplicationServices::BeginFullEnumerationChangeApplication. Обычно этот метод вызывается один раз для каждого обрабатываемого пакета изменений.

  4. Выполните перечисление изменений в пакете. Вызовите метод IChangeApplicationServices::GetChangeApplicationContext один раз для каждого изменения и используйте возвращенный объект IChangeApplicationContext для применения изменений.

  5. Сообщите об успешном применении изменений, вызвав метод IChangeApplicationServices::ReportItemChangeApplied или IChangeApplicationServices::ReportChangeUnitChangeApplied. Сообщите о неуспешном применении изменений, вызвав метод IChangeApplicationServices::ReportRecoverableErrorOnItemChange или IChangeApplicationServices::ReportRecoverableErrorOnChangeUnitChange.

  6. Вызовите метод IChangeApplicationServices::GetUpdatedDestinationKnowledge в любое время, чтобы получить обновленный набор знаний назначения, содержащий все изменения, примененные на данный момент.

  7. Завершите обработку пакета изменений, вызвав метод IChangeApplicationServices::EndChangeApplication, или завершите обработку пакета изменений для синхронизации восстановления, вызвав метод IChangeApplicationServices::EndFullEnumerationChangeApplication. Сохраните обновленные объекты набора знаний назначения и утраченного набора знаний назначения, возвращенные этим методом.

  8. Повторите шаги с 3 по 7 для каждого пакета изменений, полученного поставщиком назначения.

Системные требования

Заголовок: Synchronization.h

См. также

Основные положения

Базовые компоненты Sync Framework