Microsoft Information Protection SDK - conceitos de observador

O SDK MIP é quase totalmente assíncrono. Por exemplo, o SDK realiza qualquer operação que resulte em E/S de rede ou ficheiros de forma assíncrona. Para gerir as notificações de eventos destes eventos assíncronos, o SDK utiliza o padrão do observador.

Visão geral da implementação

Quando constrói um objeto que realiza uma operação assíncrona, implemente uma Observer classe. Os observadores recebem os eventos de notificação relacionados com as várias operações assíncronas no MIP SDK e fornecem o resultado ao chamador.

Podes sobrescrever funções virtuais em cada Observer classe para o padrão assíncrono preferido. O SDK implementa o padrão de observador de notificação de eventos usando std::promise e std::future.

Cada observador específico de classe contém um conjunto de funções de sucesso e de erro/falha para o resultado de uma operação assíncrona. As funções de êxito retornam o objeto associado à operação. Funções de erro/Funções de falha retornam uma exceção que contém detalhes sobre por que a operação não foi bem-sucedida.

Por exemplo, FileProfile suporta as seguintes duas operações:

  • Pode adicionar um novo motor ao perfil usando FileProfile::AddEngineAsync.
  • Pode descarregar um motor do perfil usando FileProfile::UnloadEngineAsync.

Como o SDK implementa duas Observer funções por operação assíncrona, pode-se assumir que quatroObserver métodos estão associados a FileProfile:

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

Classes observadoras do SDK MIP

O MIP File SDK contém dois observadores:

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

O SDK da Política de MIP inclui um observador:

  • mip::Profile::Observer

O SDK de Proteção MIP tem três observadores:

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

Passos seguintes

Saiba mais sobre como os vários SDKs implementam e utilizam observadores: