Microsoft Information Protection SDK – Beobachterkonzepte
Das MIP SDK ist so konzipiert, dass es nahezu vollständig asynchron ist. Beispielsweise wird jeder Vorgang, der zu Netzwerk- oder Datei-E/A führt, asynchron ausgeführt. Um die Ereignisbenachrichtigungen für diese asynchronen Ereignisse zu behandeln, verwendet das SDK das Beobachtermuster.
Implementierungsübersicht
Beim Erstellen eines Objekts, das einen asynchronen Vorgang ausführt, muss eine Observer
-Klasse implementiert werden. Beobachter erhalten die Benachrichtigungsereignisse im Zusammenhang mit den verschiedenen asynchronen Vorgängen im MIP SDK und stellen das Ergebnis für die aufrufende Funktion bereit.
Funktionen in jeder Observer
-Klasse sind virtuell und werden für das bevorzugte asynchrone Muster überschrieben. Das SDK implementiert das Ereignisbenachrichtigungsbeobachtermuster über std::promise
und std::future
.
Jeder klassenspezifische Beobachter enthält eine Reihe von Erfolgs- und Fehler-/Fehlerfunktionen für das Ergebnis eines asynchronen Vorgangs. 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.
FileProfile
unterstützt beispielsweise die folgenden beiden Vorgänge:
- Es kann dem Profil über
FileProfile::AddEngineAsync
eine neue Engine hinzufügen. - Es kann eine Engine aus dem Profil über
FileProfile::UnloadEngineAsync
entladen.
Da zwei Observer
Funktionen pro asynchronen Vorgang implementiert werden, kann davon ausgegangen werden, dass vier Observer
Methoden zugeordnet FileProfile
sind:
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 nur einen einzigen 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 Beobachter von den verschiedenen SDKs implementiert und verwendet werden: