Microsoft 資訊保護 SDK - 觀察者概念
MIP SDK 的設計幾乎完全是異步的。 例如,任何導致網路或檔案IO的作業都是以異步方式執行。 為了處理這些異步事件的事件通知,SDK 會使用 觀察者模式。
實作概觀
建構將執行異步操作的物件時, Observer
必須實作 類別。 觀察者會收到與 MIP SDK 中各種異步操作相關的通知事件,並將結果提供給呼叫端。
每個 Observer
類別中的函式都是虛擬的,而且會覆寫慣用異步模式。 SDK 會透過 std::promise
和 std::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 實作及使用: