Microsoft Information Protection SDK - 관찰자 개념
MIP SDK는 거의 전적으로 비동기적으로 설계되었습니다. 예를 들어 네트워크 또는 파일 IO의 결과로 발생하는 모든 작업은 비동기적으로 수행됩니다. 이러한 비동기 이벤트에 대한 이벤트 알림을 처리하기 위해 SDK는 관찰자 패턴을 사용합니다.
구현 개요
비동기 작업을 수행할 개체를 생성할 때 클래스를 Observer
구현해야 합니다. 관찰자는 MIP SDK의 다양한 비동기 작업과 관련된 알림 이벤트를 수신하고 호출자에게 결과를 제공합니다.
각 Observer
클래스의 함수는 가상이며 기본 비동기 패턴에 대해 재정의됩니다. SDK는 이벤트 알림 관찰자 패턴을 통해 std::promise
구현합니다 std::future
.
각 클래스별 관찰자에는 비동기 작업의 결과에 대한 성공 및 오류/실패 함수 집합이 포함되어 있습니다. 성공 함수는 작업과 연결된 개체를 반환합니다. 오류/오류 함수는 작업이 실패한 이유에 대한 세부 정보가 포함된 예외를 반환합니다.
예를 들어 다음 FileProfile
두 가지 작업을 지원합니다.
- 를 통해
FileProfile::AddEngineAsync
프로필에 새 엔진을 추가할 수 있습니다. - 를 통해
FileProfile::UnloadEngineAsync
프로필에서 엔진을 언로드할 수 있습니다.
두 Observer
함수는 비동기 작업별로 구현되므로 다음과 관련된 FileProfile
네 Observer
가지 메서드가 있다고 가정할 수 있습니다.
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에서 관찰자를 구현하고 사용하는 방법에 대해 자세히 알아봅니다.