SDK do Microsoft Proteção de Informações – conceitos de observador

O SDK do MIP é quase inteiramente assíncrono. Por exemplo, o SDK executa qualquer operação que resulte em E/S de rede ou arquivo de forma assíncrona. Para lidar com as notificações de evento para esses eventos assíncronos, o SDK usa o padrão de observador.

Visão geral da implementação

Ao construir um objeto que executa uma operação assíncrona, implemente uma Observer classe. Os observadores recebem os eventos de notificação relacionados às várias operações assíncronas no SDK do MIP e fornecem o resultado para o chamador.

Você pode sobrescrever funções virtuais em cada classe Observer 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 êxito e erro/falha para o resultado de uma operação assíncrona. As funções de êxito retornam o objeto associado à operação. As funções de erro/falha retornam uma exceção que contém detalhes sobre o motivo da operação não ter sido bem-sucedida.

Por exemplo, FileProfile dá suporte às duas operações a seguir:

  • Ele pode adicionar um novo mecanismo ao perfil usando FileProfile::AddEngineAsync.
  • Ele pode descarregar um mecanismo do perfil usando FileProfile::UnloadEngineAsync.

Como o SDK implementa duas Observer funções por operação assíncrona, você pode assumir que quatroObserver métodos estão associados FileProfilea:

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

Classes de observador do SDK do MIP

O SDK do arquivo da PIM contém dois observadores:

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

O SDK da Política do 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

Próximas Etapas 

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