Dela via


Microsoft Information Protection SDK – Observatörsbegrepp

MIP SDK är utformat för att vara nästan helt asynkront. Till exempel utförs alla åtgärder som resulterar i nätverks- eller fil-I/O asynkront. För att hantera händelsemeddelanden för dessa asynkrona händelser använder SDK:t övervakningsmönstret.

Översikt över implementering

När du skapar ett objekt som ska utföra en asynkron åtgärd måste en Observer klass implementeras. Observatörer kommer att ta emot aviseringshändelser relaterade till de olika asynkrona åtgärderna i MIP SDK och ge resultatet till anroparen.

Funktioner i varje Observer klass är virtuella och åsidosättas för det önskade asynkrona mönstret. SDK implementerar mönstret för händelsemeddelandeobservatör via std::promise och std::future.

Varje klassspecifik övervakare innehåller en uppsättning funktioner för lyckade och fel/fel för resultatet av en asynkron åtgärd. Framgångsfunktioner returnerar objektet som är associerat med åtgärden. Felfunktionerna/ returnerar ett undantag som innehåller information om varför åtgärden misslyckades.

Till exempel FileProfile stöder följande två åtgärder:

  • Den kan lägga till en ny motor i profilen via FileProfile::AddEngineAsync.
  • Den kan ta bort en motor från profilen via FileProfile::UnloadEngineAsync.

Eftersom två Observer funktioner implementeras per asynkron åtgärd kan man anta att det finns fyra Observer metoder som är associerade med FileProfile:

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

MIP SDK Observer-klasser

MIP File SDK innehåller två observatörer:

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

MIP Policy SDK har bara en enda observatör:

  • mip::Profile::Observer

MIP Protection SDK har tre observatörer:

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

Nästa steg

Läs mer om hur observatörer implementeras och används av de olika SDK:erna: