IChangeApplicationServices 接口
表示可用于单独执行变更应用操作的变更应用服务对象。
interface IChangeApplicationServices : IUnknown
成员
IChangeApplicationServices 方法 | 说明 |
---|---|
初始化变更应用服务对象。此方法必须在任何其他方法之前调用。 |
|
开始处理一组变更。 |
|
IChangeApplicationServices::BeginFullEnumerationChangeApplication |
开始处理作为恢复同步组成部分的一组变更。 |
结束处理一组变更。 |
|
IChangeApplicationServices::EndFullEnumerationChangeApplication |
结束处理作为恢复同步组成部分的一组变更。 |
设置在应用变更时用于计算已更新目标知识的目标知识。 |
|
获取包含到目前为止已应用的所有变更的已更新目标知识。 |
|
获取一个表示要应用的当前变更的对象。 |
|
通知变更应用服务,项变更已成功应用于目标副本。 |
|
通知变更应用服务,变更单位变更已成功应用于目标副本。 |
|
IChangeApplicationServices::ReportRecoverableErrorOnItemChange |
通知变更应用服务,在目标提供程序尝试应用项变更时出现可恢复错误。 |
IChangeApplicationServices::ReportRecoverableErrorOnChangeUnitChange |
通知变更应用服务,在目标提供程序尝试应用变更单位变更时出现可恢复错误。 |
备注
IChangeApplicationServices 接口是 Sync Framework 变更应用服务的组成部分,当提供程序要求的灵活性比 Sync Framework 提供的标准变更应用方所允许的灵活性更高时使用该接口。例如,提供程序必须将某些变更的应用延迟到同步会话的最后。但标准变更应用方不允许延迟。提供程序可使用变更应用服务来处理冲突检测和知识计算,而且必要时还能够延迟变更。
对于不需要变更应用服务提供的更多灵活性的提供程序来说,使用标准变更应用方(如 ISynchronousNotifyingChangeApplier)要更简单。
通常,目标提供程序使用变更应用服务来帮助实现其 IKnowledgeSyncProvider::ProcessChangeBatch 和 IKnowledgeSyncProvider::ProcessFullEnumerationChangeBatch 方法。若要使用变更应用服务,请执行以下步骤:
通过将 IID_IChangeApplicationServices 传递到 IProviderSyncServices::CreateChangeApplier 方法来获取 IChangeApplicationServices 对象。
通过调用 IChangeApplicationServices::Initialize 来初始化该对象。
通过调用 IChangeApplicationServices::BeginChangeApplication 开始处理变更批,或者通过调用 IChangeApplicationServices::BeginFullEnumerationChangeApplication 开始处理恢复同步变更批。通常,对要处理的每个变更批调用一次此方法。
枚举变更批中的变更。对每个变更调用一次 IChangeApplicationServices::GetChangeApplicationContext,然后使用返回的 IChangeApplicationContext 对象应用变更。
通过调用 IChangeApplicationServices::ReportItemChangeApplied 或 IChangeApplicationServices::ReportChangeUnitChangeApplied 来报告已成功应用变更。通过调用 IChangeApplicationServices::ReportRecoverableErrorOnItemChange 或 IChangeApplicationServices::ReportRecoverableErrorOnChangeUnitChange 来报告变更应用失败。
可以随时调用 IChangeApplicationServices::GetUpdatedDestinationKnowledge 来检索更新的目标知识(包含到目前为止所有已应用变更)。
通过调用 IChangeApplicationServices::EndChangeApplication 结束变更批的处理,或者通过调用 IChangeApplicationServices::EndFullEnumerationChangeApplication 结束恢复同步变更批的处理。保存此方法返回的已更新目标知识对象和目标遗忘知识对象。
对目标提供程序接收到的每个变更批重复步骤 3 到步骤 7。
要求
**头文件:**Synchronization.h