Sdílet prostřednictvím


Microsoft Information Protection SDK – Koncepty pozorovatelů

Sada MIP SDK je navržená tak, aby byla téměř úplně asynchronní. Například jakákoli operace, která má za následek vstupně-výstupní operace v síti nebo souboru, se provádí asynchronně. K zpracování oznámení událostí pro tyto asynchronní události využívá sada SDK vzor pozorovatele.

Přehled implementace

Při vytváření objektu, který provede asynchronní operaci, musí být implementována Observer třída. Pozorovatelé obdrží události oznámení související s různými asynchronními operacemi v sadě MIP SDK a poskytnou výsledek volajícímu.

Funkce v každé Observer třídě jsou virtuální a přepíše se pro preferovaný asynchronní vzor. Sada SDK implementuje vzor pozorovatele oznámení událostí prostřednictvím std::promise a std::future.

Každý pozorovatel specifický pro třídu obsahuje sadu funkcí úspěchu a chyb/selhání pro výsledek asynchronní operace. Funkce úspěchu vrátí objekt přidružený k operaci. Funkce selhání chyby/vrací výjimku, která obsahuje podrobnosti o tom, proč operace nebyla úspěšná.

FileProfile Například podporuje následující dvě operace:

  • Může přidat nový modul do profilu prostřednictvím FileProfile::AddEngineAsync.
  • Může uvolnit modul z profilu prostřednictvím FileProfile::UnloadEngineAsync.

Vzhledem k tomu, že jsou na asynchronní operaci implementovány dvě Observer funkce, lze předpokládat, že existují čtyři Observer metody přidružené FileProfilek :

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

Třídy pozorovatele sady MIP SDK

Sada SDK pro soubory MIP obsahuje dva pozorovatele:

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

Sada MIP Policy SDK má pouze jednoho pozorovatele:

  • mip::Profile::Observer

Sada MIP Protection SDK má tři pozorovatele:

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

Další kroky

Přečtěte si další informace o tom, jak se pozorovatelé implementují a používají pomocí různých sad SDK: