Microsoft Information Protection SDK - 관찰자 개념

MIP SDK는 거의 전적으로 비동기적으로 설계되었습니다. 예를 들어 네트워크 또는 파일 IO의 결과로 발생하는 모든 작업은 비동기적으로 수행됩니다. 이러한 비동기 이벤트에 대한 이벤트 알림을 처리하기 위해 SDK는 관찰자 패턴을 사용합니다.

구현 개요

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

Observer 클래스의 함수는 가상이며 기본 비동기 패턴에 대해 재정의됩니다. SDK는 이벤트 알림 관찰자 패턴을 통해 std::promise 구현합니다 std::future.

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

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

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

Observer 함수는 비동기 작업별로 구현되므로 다음과 관련된 FileProfileObserver 가지 메서드가 있다고 가정할 수 있습니다.

  • 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에서 관찰자를 구현하고 사용하는 방법에 대해 자세히 알아봅니다.