Microsoft Information Protection SDK - オブザーバーの概念
MIP SDK は、ほぼ完全に非同期になるように設計されています。 たとえば、ネットワークまたはファイル IO が発生する操作はすべて非同期で実行されます。 これらの非同期イベントのイベント通知を処理するために、SDK はオブザーバー パターンを利用します。
実装の概要
非同期操作を実行するオブジェクトを構築する場合、Observer
クラスを実装する必要があります。 オブザーバーは、MIP SDK のさまざまな非同期操作に関連する通知イベントを受信し、結果を呼び出し元に提供します。
各 Observer
クラスの関数は仮想関数であり、優先される非同期パターンに合わせてオーバーライドされます。 SDK は、std::promise
と std::future
を介してイベント通知オブザーバー パターンを実装します。
各クラス固有のオブザーバーには、非同期操作の結果に対する一連の成功関数とエラー/失敗関数が含まれています。 Success 関数は、操作に関連付けられたオブジェクトを返します。 Error/Failure関数は、操作が失敗した理由の詳細を含む例外を返します。
例として、FileProfile
は次の 2 つの操作をサポートします。
FileProfile::AddEngineAsync
を介してプロファイルに新しいエンジンを追加できます。FileProfile::UnloadEngineAsync
を介してプロファイルからエンジンをアンロードできます。
非同期操作ごとに 2 つの Observer
関数が実装されているため、FileProfile
には、4 つのObserver
メソッドが関連付けられていると想定できます。
FileProfileObserver::OnAddEngineSuccess()
FileProfileObserver::OnAddEngineError()
FileProfileObserver::OnUnloadEngineSuccess
FileProfileObserver::OnUnloadEngineError()
.
MIP SDK オブザーバー クラス
MIP ファイル SDK には、2 つのオブザーバー クラスがあります。
mip::FileProfile::Observer
mip::FileHandler::Observer
MIP ポリシー SDK には、単一のオブザーバーのみがあります。
mip::Profile::Observer
MIP 保護 SDK には、3 つのオブザーバー クラスが含まれています。
mip::ProtectionProfile::Observer
mip::ProtectionEngine::Observer
mip::ProtectionHandler::Observer
次のステップ
オブザーバーが、さまざまな SDK によってどのように実装され、使用されるかについて説明します。