Пакет 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

Дальнейшие действия

Дополнительные сведения о реализации и использовании наблюдателей различными пакетами SDK: