Microsoft Information Protection SDK - 관찰자 개념

MIP SDK는 거의 완전히 비동기적입니다. 예를 들어 SDK는 네트워크 또는 파일 I/O를 비동기적으로 생성하는 모든 작업을 수행합니다. 이러한 비동기 이벤트에 대한 이벤트 알림을 처리하기 위해 SDK는 관찰자 패턴을 사용합니다.

구현 개요

비동기 작업을 수행하는 개체를 생성할 때 클래스를 구현합니다 Observer . 관찰자는 MIP SDK의 다양한 비동기 작업과 관련된 알림 이벤트를 수신하고 호출자에게 결과를 제공합니다.

기본 비동기 패턴에 대해 각 Observer 클래스의 가상 함수를 재정의할 수 있습니다. SDK는 std::promise 및 std::future를 사용하여 이벤트 알림 옵저버 패턴을 구현합니다.

각 클래스별 관찰자에는 비동기 작업의 결과에 대한 성공 및 오류/실패 함수 집합이 포함되어 있습니다. 성공 함수는 작업과 연결된 개체를 반환합니다. 오류/오류 함수는 작업이 실패한 이유에 대한 세부 정보가 포함된 예외를 반환합니다.

예를 들어 다음 FileProfile 두 가지 작업을 지원합니다.

  • 를 사용하여 FileProfile::AddEngineAsync프로필에 새 엔진을 추가할 수 있습니다.
  • FileProfile::UnloadEngineAsync를 사용하여 프로필에서 엔진을 언로드할 수 있습니다.

SDK는 비동기 작업당 두 개의 Observer 함수를 구현하므로 4개의Observer 메서드가 다음과 연결되어 FileProfile있다고 가정할 수 있습니다.

  • FileProfileObserver::OnAddEngineSuccess()
  • FileProfileObserver::OnAddEngineError()
  • FileProfileObserver::OnUnloadEngineSuccess
  • FileProfileObserver::OnUnloadEngineError()

MIP SDK 관찰자 클래스

MIP 파일 SDK에는 두 개의 관찰자가 포함됩니다.

  • mip::FileProfile::Observer
  • mip::FileHandler::Observer

MIP 정책 SDK에는 다음 하나의 관찰자가 있습니다.

  • mip::Profile::Observer

MIP Protection SDK에는 세 가지 관찰자가 있습니다.

  • mip::ProtectionProfile::Observer
  • mip::ProtectionEngine::Observer
  • mip::ProtectionHandler::Observer

다음 단계

다양한 SDK가 관찰자를 구현하고 사용하는 방법에 대해 자세히 알아봅니다.