Udostępnij za pośrednictwem


Microsoft Information Protection SDK — pojęcia dotyczące obserwatora

Zestaw MIP SDK został zaprojektowany tak, aby był niemal całkowicie asynchroniczny. Na przykład każda operacja skutkująca operacjami wejścia/wyjścia sieci lub plików jest wykonywana asynchronicznie. Aby obsługiwać powiadomienia o zdarzeniach dla tych zdarzeń asynchronicznych, zestaw SDK korzysta ze wzorca obserwatora.

Omówienie implementacji

Podczas konstruowania obiektu, który będzie wykonywać operację asynchroniczną, należy zaimplementować klasę Observer . Obserwatorzy otrzymają zdarzenia powiadomień związane z różnymi operacjami asynchronicznymi w pakiecie MIP SDK, i dostarczą wynik do wywołującego.

Funkcje w każdej Observer klasie są wirtualne i są zastępowane dla preferowanego wzorca asynchronicznego. Zestaw SDK implementuje wzorzec obserwatora powiadomień o zdarzeniach za pomocą poleceń std::promise i std::future.

Każdy obserwator specyficzny dla klasy zawiera zestaw funkcji powodzenia i błędu/niepowodzenia dla wyniku operacji asynchronicznych. Funkcje powodzenia zwracają obiekt skojarzony z operacją. Funkcje błędów/ zwracają wyjątek zawierający szczegółowe informacje o tym, dlaczego operacja zakończyła się niepowodzeniem.

Na przykład FileProfile obsługuje następujące dwie operacje:

  • Można dodać nowy silnik do profilu za pomocą FileProfile::AddEngineAsync.
  • Może rozładować silnik z profilu za pomocą FileProfile::UnloadEngineAsync.

Ponieważ dwie Observer funkcje są implementowane na operację asynchroniczną, można założyć, że istnieją czteryObserver metody skojarzone z FileProfile:

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

Klasy obserwatorów zestawu MIP SDK

Zestaw SDK pliku MIP zawiera dwóch obserwatorów:

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

Zestaw SDK MIP Policy ma tylko jednego obserwatora.

  • mip::Profile::Observer

Zestaw MIP Protection SDK ma trzech obserwatorów:

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

Następne kroki

Dowiedz się więcej o tym, jak obserwatorzy są implementowane i używane przez różne zestawy SDK: