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::ProcessChangeBatchIKnowledgeSyncProvider::ProcessFullEnumerationChangeBatch 方法。若要使用变更应用服务,请执行以下步骤:

  1. 通过将 IID_IChangeApplicationServices 传递到 IProviderSyncServices::CreateChangeApplier 方法来获取 IChangeApplicationServices 对象。

  2. 通过调用 IChangeApplicationServices::Initialize 来初始化该对象。

  3. 通过调用 IChangeApplicationServices::BeginChangeApplication 开始处理变更批,或者通过调用 IChangeApplicationServices::BeginFullEnumerationChangeApplication 开始处理恢复同步变更批。通常,对要处理的每个变更批调用一次此方法。

  4. 枚举变更批中的变更。对每个变更调用一次 IChangeApplicationServices::GetChangeApplicationContext,然后使用返回的 IChangeApplicationContext 对象应用变更。

  5. 通过调用 IChangeApplicationServices::ReportItemChangeAppliedIChangeApplicationServices::ReportChangeUnitChangeApplied 来报告已成功应用变更。通过调用 IChangeApplicationServices::ReportRecoverableErrorOnItemChangeIChangeApplicationServices::ReportRecoverableErrorOnChangeUnitChange 来报告变更应用失败。

  6. 可以随时调用 IChangeApplicationServices::GetUpdatedDestinationKnowledge 来检索更新的目标知识(包含到目前为止所有已应用变更)。

  7. 通过调用 IChangeApplicationServices::EndChangeApplication 结束变更批的处理,或者通过调用 IChangeApplicationServices::EndFullEnumerationChangeApplication 结束恢复同步变更批的处理。保存此方法返回的已更新目标知识对象和目标遗忘知识对象。

  8. 对目标提供程序接收到的每个变更批重复步骤 3 到步骤 7。

要求

**头文件:**Synchronization.h

请参阅

概念

Sync Framework 核心组件