Microsoft Information Protection SDK – Beobachterkonzepte

Das MIP SDK ist fast vollständig asynchron. Beispielsweise führt das SDK alle Vorgänge aus, die asynchron zu Netzwerk- oder Datei-E/A führen. Um die Ereignisbenachrichtigungen für diese asynchronen Ereignisse zu behandeln, verwendet das SDK das Beobachtermuster.

Implementierungsübersicht

Wenn Sie ein Objekt erstellen, das einen asynchronen Vorgang ausführt, implementieren Sie eine Observer Klasse. Beobachter erhalten die Benachrichtigungsereignisse im Zusammenhang mit den verschiedenen asynchronen Vorgängen im MIP SDK und stellen das Ergebnis für den Aufrufer bereit.

Sie können virtuelle Funktionen in jeder Observer Klasse für das bevorzugte asynchrone Muster überschreiben. Das SDK implementiert das Ereignisbenachrichtigungsbeobachtermuster mithilfe std::promise und std::future.

Jeder klassenspezifische Beobachter enthält einen Satz von Erfolgs- und Fehlerfunktionen für den Ausgang einer asynchronen Operation. Erfolgsfunktionen geben das dem Vorgang zugeordnete Objekt zurück. Fehler/Fehlerfunktionen geben eine Ausnahme zurück, die Details dazu enthält, warum der Vorgang nicht erfolgreich war.

Unterstützt beispielsweise FileProfile die folgenden beiden Vorgänge:

  • Sie kann dem Profil mithilfe von FileProfile::AddEngineAsync eine neue Engine hinzufügen.
  • Mit FileProfile::UnloadEngineAsync kann eine Engine aus dem Profil entladen werden.

Da das SDK zwei Observer Funktionen pro asynchronen Vorgang implementiert, können Sie davon ausgehen, dass vierObserver Methoden zugeordnet FileProfilesind:

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

MIP SDK-Beobachterklassen

Das MIP File SDK enthält zwei Beobachter:

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

Das MIP Policy SDK hat einen Beobachter:

  • mip::Profile::Observer

Das MIP Protection SDK verfügt über drei Beobachter:

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

Nächste Schritte

Erfahren Sie mehr darüber, wie die verschiedenen SDKs Beobachter implementieren und verwenden: