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 powodująca asynchroniczne wykonywanie operacji we/wy sieci lub plików. 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 zestawie MIP SDK i dostarczają wynik wywołujący.

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że dodać nowy aparat do profilu za pomocą polecenia FileProfile::AddEngineAsync.
  • Może zwolnić aparat z profilu za pomocą polecenia 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 zasad miP 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: