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

Классы Observer 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: