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

SDK MIP działa niemal całkowicie asynchronicznie. Na przykład SDK wykonuje asynchronicznie wszelkie operacje, które obejmują wejście/wyjście sieciowe lub plikowe. Aby obsługiwać powiadomienia o tych zdarzeniach asynchronicznych, SDK używa wzorca obserwatora.

Omówienie implementacji

Podczas konstruowania obiektu wykonującego operację asynchroniczną zaimplementuj klasę Observer . Obserwatorzy odbierają zdarzenia powiadomień związane z różnymi operacjami asynchronicznymi w pakiecie SDK MIP i przekazują wynik do kodu wywołującego.

W każdej klasie Observer można przesłonić funkcje wirtualne zgodnie z preferowanym wzorcem asynchronicznym. SDK implementuje wzorzec obserwatora do powiadamiania o zdarzeniach przy użyciu 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 usunąć silnik z profilu za pomocą FileProfile::UnloadEngineAsync.

Ponieważ zestaw SDK implementuje dwie Observer funkcje na operację asynchroniczną, można założyć, że czteryObserver metody są 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 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 różne zestawy SDK implementują obserwatorów i korzystają z nich: