Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пакет SDK MIP почти полностью асинхронен. Например, пакет SDK выполняет любую операцию, которая приводит к асинхронной работе сети или ввода-вывода файлов. Для обработки уведомлений о событиях для этих асинхронных событий пакет SDK использует шаблон наблюдателя.
Обзор реализации
При создании объекта, выполняющего асинхронную операцию, реализуйте Observer класс. Наблюдатели получают события уведомлений, связанные с различными асинхронными операциями в MIP SDK, и передают результат вызывающему коду.
Виртуальные функции можно переопределить в каждом Observer классе для предпочтительного асинхронного шаблона. Пакет SDK реализует шаблон наблюдателя уведомлений о событиях с помощью std::promise и std::future.
Каждый наблюдатель, зависящий от класса, содержит набор функций успешности и ошибки или сбоя для результата асинхронной операции. Функции успешного выполнения возвращают объект, связанный с операцией. Функции ошибки/ возвращают исключение, содержащее сведения о том, почему операция была неудачной.
Например, FileProfile поддерживает следующие две операции:
- Можно добавить в профиль новый движок с помощью
FileProfile::AddEngineAsync. - Можно выгрузить модуль из профиля с помощью
FileProfile::UnloadEngineAsync.
Так как пакет SDK реализует две Observer функции для каждой асинхронной операции, можно предположить, что четыреObserver метода связаны с FileProfile:
FileProfileObserver::OnAddEngineSuccess()FileProfileObserver::OnAddEngineError()FileProfileObserver::OnUnloadEngineSuccessFileProfileObserver::OnUnloadEngineError()
Классы наблюдателя пакета SDK для MIP
Пакет SDK для файлов MIP содержит два наблюдателя:
mip::FileProfile::Observermip::FileHandler::Observer
Пакет SDK политики MIP имеет одного наблюдателя:
mip::Profile::Observer
Пакет SDK защиты MIP включает трех наблюдателей.
mip::ProtectionProfile::Observermip::ProtectionEngine::Observermip::ProtectionHandler::Observer
Дальнейшие действия
Узнайте больше о том, как различные пакеты SDK реализуют и используют наблюдателей: