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í pro tyto asynchronní události využívá 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ží oznámení událostí související s různými asynchronními operacemi v MIP SDK a poskytnou výsledek volajícím.

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

Každý pozorovatel specifický pro jednotlivé třídy obsahuje sadu funkcí pro úspěšné a neúspěšné případy výsledku asynchronní operace. Funkce úspěchu vrátí objekt přidružený k operaci. Chyba/Selhání funkce vracejí 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ý engine do profilu pomocí FileProfile::AddEngineAsync.
  • Může uvolnit motor 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řiObserver 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: