共用方式為


Microsoft 資訊保護 SDK - 觀察者概念

MIP SDK 的設計幾乎完全是異步的。 例如,任何導致網路或檔案IO的作業都是以異步方式執行。 為了處理這些異步事件的事件通知,SDK 會使用 觀察者模式

實作概觀

建構將執行異步操作的物件時, Observer 必須實作 類別。 觀察者會收到與 MIP SDK 中各種異步操作相關的通知事件,並將結果提供給呼叫端。

每個 Observer 類別中的函式都是虛擬的,而且會覆寫慣用異步模式。 SDK 會透過 std::promisestd::future實作事件通知觀察者模式。

每個類別特定的觀察者都包含一組成功和錯誤/失敗函式,以取得異步操作的結果。 成功 函式會傳回與作業相關聯的物件。 錯誤/失敗 函式會傳回例外狀況,其中包含作業失敗原因的詳細數據。

例如, FileProfile 支援下列兩項作業:

  • 它可以透過 FileProfile::AddEngineAsync將新的引擎新增至配置檔。
  • 它可以透過 FileProfile::UnloadEngineAsync從配置檔卸除引擎。

由於每個異步操作會實作兩Observer個函式,因此可以假設有Observer個與 FileProfile相關聯的方法:

  • FileProfileObserver::OnAddEngineSuccess()
  • FileProfileObserver::OnAddEngineError()
  • FileProfileObserver::OnUnloadEngineSuccess
  • FileProfileObserver::OnUnloadEngineError().

MIP SDK 觀察者類別

MIP 檔案 SDK 包含兩個觀察者:

  • mip::FileProfile::Observer
  • mip::FileHandler::Observer

MIP 原則 SDK 只有單一觀察者:

  • mip::Profile::Observer

MIP 保護 SDK 有三個觀察者:

  • mip::ProtectionProfile::Observer
  • mip::ProtectionEngine::Observer
  • mip::ProtectionHandler::Observer

後續步驟

深入了解觀察者如何由各種 SDK 實作及使用: