SDK de Proteção de Informações da Microsoft - Conceitos do Observer

O MIP SDK foi projetado para ser quase totalmente assíncrono. Por exemplo, qualquer operação que resulte em E/S de rede ou arquivo é executada de forma assíncrona. Para manipular as notificações de eventos para esses eventos assíncronos, o SDK usa o padrão de observador.

Visão geral da implementação

Ao construir um objeto que executará uma operação assíncrona, uma Observer classe deve ser implementada. Os observadores receberão os eventos de notificação relacionados às várias operações assíncronas no MIP SDK e fornecerão o resultado ao chamador.

As funções em cada Observer classe são virtuais e são substituídas pelo padrão assíncrono preferido. O SDK implementa o padrão de observador de notificação de eventos via std::promise e std::future.

Cada observador específico da classe contém um conjunto de funções de sucesso 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 falha de erro/retornam uma exceção que contém detalhes sobre por que a operação não foi bem-sucedida.

Como exemplo, FileProfile suporta as duas operações a seguir:

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

Uma vez que duas Observer funções são implementadas por operação assíncrona, pode-se supor que existem quatro Observer métodos associados a FileProfile:

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

Classes de observador do MIP SDK

O MIP File SDK contém dois observadores:

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

O SDK de Política MIP tem apenas um único 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 observadores são implementados e usados pelos vários SDKs: