Microsoft Information Protection SDK - Waarnemersconcepten

De MIP SDK is ontworpen om bijna volledig asynchroon te zijn. Elke bewerking die resulteert in netwerk- of bestands-IO wordt bijvoorbeeld asynchroon uitgevoerd. Voor het afhandelen van de gebeurtenismeldingen voor deze asynchrone gebeurtenissen maakt de SDK gebruik van het waarnemerspatroon.

Implementatieoverzicht

Bij het maken van een object dat een asynchrone bewerking uitvoert, moet een Observer klasse worden geïmplementeerd. Waarnemers ontvangen de meldingsevenementen met betrekking tot de verschillende asynchrone bewerkingen in de MIP SDK en geven het resultaat aan de aanroeper.

Functies in elke Observer klasse zijn virtueel en worden overschreven voor het gewenste asynchrone patroon. De SDK implementeert het waarnemerspatroon voor gebeurtenismeldingen via std::promise en std::future.

Elke klassespecifieke waarnemer bevat een set succes- en fout-/foutfuncties voor het resultaat van een asynchrone bewerking. Succesfuncties retourneren het object dat is gekoppeld aan de bewerking. Foutfoutfuncties/ retourneren een uitzondering die details bevat over waarom de bewerking is mislukt.

Ondersteunt bijvoorbeeld FileProfile de volgende twee bewerkingen:

  • Er kan een nieuwe engine aan het profiel worden toegevoegd via FileProfile::AddEngineAsync.
  • Het kan een engine uit het profiel verwijderen via FileProfile::UnloadEngineAsync.

Omdat twee Observer functies per asynchrone bewerking worden geïmplementeerd, kan worden aangenomen dat er vierObserver methoden zijn gekoppeld aanFileProfile:

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

MiP SDK-waarnemerklassen

De MIP File SDK bevat twee waarnemers:

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

De MIP Policy SDK heeft slechts één waarnemer:

  • mip::Profile::Observer

De MIP Protection SDK heeft drie waarnemers:

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

Volgende stappen

Meer informatie over hoe waarnemers worden geïmplementeerd en gebruikt door de verschillende SDK's: