Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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::OnUnloadEngineSuccessFileProfileObserver::OnUnloadEngineError()
Klasy obserwatorów zestawu MIP SDK
Zestaw SDK pliku MIP zawiera dwóch obserwatorów:
mip::FileProfile::Observermip::FileHandler::Observer
Zestaw SDK MIP Policy ma jednego obserwatora:
mip::Profile::Observer
Zestaw MIP Protection SDK ma trzech obserwatorów:
mip::ProtectionProfile::Observermip::ProtectionEngine::Observermip::ProtectionHandler::Observer
Następne kroki
Dowiedz się więcej o tym, jak różne zestawy SDK implementują obserwatorów i korzystają z nich: