MIP SDK はほぼ完全に非同期です。 たとえば、SDK は、ネットワークまたはファイル I/O を非同期的に実行する操作を実行します。 これらの非同期イベントのイベント通知を処理するために、SDK は オブザーバー パターンを使用します。
実装の概要
非同期操作を実行するオブジェクトを構築する場合は、 Observer クラスを実装します。 オブザーバーは、MIP SDK のさまざまな非同期操作に関連する通知イベントを受け取り、呼び出し元に結果を提供します。
優先される非同期パターンの各 Observer クラスの仮想関数をオーバーライドできます。 SDK は、 std::promise と std::futureを使用してイベント通知オブザーバー パターンを実装します。
各クラス固有のオブザーバーには、非同期操作の結果を処理するための成功関数とエラー/失敗関数のセットが含まれています。 Success 関数は、操作に関連付けられたオブジェクトを返します。 Error/Failure関数は、操作が失敗した理由の詳細を含む例外を返します。
たとえば、 FileProfile では次の 2 つの操作がサポートされます。
-
FileProfile::AddEngineAsyncを使用して、プロファイルに新しいエンジンを追加できます。 -
FileProfile::UnloadEngineAsyncを使用して、プロファイルからエンジンをアンロードできます。
SDK は非同期操作ごとに 2 つの Observer 関数を実装するため、次の 4 つのObserver メソッドが FileProfileに関連付けられていると想定できます。
FileProfileObserver::OnAddEngineSuccess()FileProfileObserver::OnAddEngineError()FileProfileObserver::OnUnloadEngineSuccessFileProfileObserver::OnUnloadEngineError()
MIP SDK オブザーバー クラス
MIP ファイル SDK には、2 つのオブザーバー クラスがあります。
mip::FileProfile::Observermip::FileHandler::Observer
MIP Policy SDK には、次の 1 つのオブザーバーがあります。
mip::Profile::Observer
MIP 保護 SDK には、3 つのオブザーバー クラスが含まれています。
mip::ProtectionProfile::Observermip::ProtectionEngine::Observermip::ProtectionHandler::Observer
次のステップ
さまざまな SDK がオブザーバーを実装して使用する方法の詳細を確認します。