IChangeApplicationServices インターフェイス
変更の適用操作を個別に行うときに使用できる変更適用サービス オブジェクトを表します。
interface IChangeApplicationServices : IUnknown
メンバー
IChangeApplicationServices メソッド | 説明 |
---|---|
変更適用サービス オブジェクトを初期化します。このメソッドは、他のメソッドの前に呼び出す必要があります。 |
|
一連の変更の処理を開始します。 |
|
IChangeApplicationServices::BeginFullEnumerationChangeApplication |
復旧同期の一環として一連の変更の処理を開始します。 |
一連の変更の処理を終了します。 |
|
IChangeApplicationServices::EndFullEnumerationChangeApplication |
復旧同期の一環として一連の変更の処理を終了します。 |
変更が適用される際に更新された同期先ナレッジを計算するために使用される同期先ナレッジを設定します。 |
|
これまでに適用されたすべての変更を含む更新された同期先ナレッジを取得します。 |
|
適用する現在の変更を表すオブジェクトを取得します。 |
|
項目変更が同期先レプリカに正常に適用されたことを変更適用サービスに通知します。 |
|
変更単位の変更が同期先レプリカに正常に適用されたことを変更適用サービスに通知します。 |
|
IChangeApplicationServices::ReportRecoverableErrorOnItemChange |
変更適用サービスに対して、同期先プロバイダーが項目の変更の適用を試みたときに復旧可能なエラーが発生したことを通知します。 |
IChangeApplicationServices::ReportRecoverableErrorOnChangeUnitChange |
変更適用サービスに対して、同期先プロバイダーが変更単位の変更の適用を試みたときに復旧可能なエラーが発生したことを通知します。 |
解説
IChangeApplicationServices インターフェイスは、Sync Framework の変更適用サービスに含まれており、Sync Framework によって提供される標準の変更適用元よりもプロバイダーで柔軟性を高める必要がある場合に使用されます。たとえば、プロバイダーで、特定の変更の適用を同期セッションの最後に延期する必要があるとします。標準の変更適用元では、これは許可されません。プロバイダーでは、変更適用サービスを使用すると、必要に応じて、競合の検出やナレッジの計算を処理しながら、変更を保留しておくこともできます。
変更適用サービスの柔軟性を高める必要がないプロバイダーでは、ISynchronousNotifyingChangeApplier など、標準の変更適用元を使用する方が簡単です。
通常、変更適用サービスは、同期先プロバイダーでその IKnowledgeSyncProvider::ProcessChangeBatch メソッドと IKnowledgeSyncProvider::ProcessFullEnumerationChangeBatch メソッドを実装できるようにするために使用されます。変更適用サービスを使用するには、次の手順を実行します。
IProviderSyncServices::CreateChangeApplier メソッドに IID_IChangeApplicationServices を渡すことによって、IChangeApplicationServices オブジェクトを取得します。
IChangeApplicationServices::Initialize を呼び出してオブジェクトを初期化します。
IChangeApplicationServices::BeginChangeApplication を呼び出して変更バッチの処理を開始するか、IChangeApplicationServices::BeginFullEnumerationChangeApplication を呼び出して復旧同期の変更バッチの処理を開始します。通常、このメソッドは、各変更バッチを処理するたびに 1 回呼び出されます。
変更バッチ内で変更を列挙します。各変更につき 1 回 IChangeApplicationServices::GetChangeApplicationContext を呼び出し、返された IChangeApplicationContext オブジェクトを使用して変更を適用します。
IChangeApplicationServices::ReportItemChangeApplied または IChangeApplicationServices::ReportChangeUnitChangeApplied を呼び出して、変更が正常に適用されたことを報告します。IChangeApplicationServices::ReportRecoverableErrorOnItemChange または IChangeApplicationServices::ReportRecoverableErrorOnChangeUnitChange を呼び出して、変更の適用が失敗したことを報告します。
任意のタイミングで IChangeApplicationServices::GetUpdatedDestinationKnowledge を呼び出し、これまでに適用されたすべての変更を含む更新された同期先ナレッジを取得します。
IChangeApplicationServices::EndChangeApplication を呼び出して変更バッチの処理を終了するか、IChangeApplicationServices::EndFullEnumerationChangeApplication を呼び出して復旧同期の変更バッチの処理を終了します。このメソッドによって返される、更新された同期先ナレッジ オブジェクトと同期先の忘れられたナレッジ オブジェクトを保存します。
同期先プロバイダーで受け取った各変更バッチに対して手順 3. ~ 7. を繰り返します。
必要条件
ヘッダー: Synchronization.h