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