Microsoft Information Protection SDK - Concetti relativi agli osservatori

MIP SDK è quasi completamente asincrono. Ad esempio, l'SDK esegue qualsiasi operazione che comporta l'I/O di rete o il file in modo asincrono. Per gestire le notifiche degli eventi per questi eventi asincroni, l'SDK usa il modello observer.

Panoramica dell'implementazione

Quando si costruisce un oggetto che esegue un'operazione asincrona, implementare una Observer classe . Gli osservatori ricevono gli eventi di notifica correlati alle varie operazioni asincrone in MIP SDK e forniscono il risultato al chiamante.

È possibile eseguire l'override delle funzioni virtuali in ogni Observer classe per il modello asincrono preferito. L'SDK implementa il modello observer di notifica eventi usando std::promise e std::future.

Ogni observer specifico della classe contiene un insieme di funzioni di successo e di errore/fallimento per gestire l’esito di un’operazione asincrona. Le funzioni success restituiscono l'oggetto associato all'operazione. Le funzioni di errore/ restituiscono un'eccezione che contiene informazioni dettagliate sul motivo per cui l'operazione non è riuscita.

Ad esempio, FileProfile supporta le due operazioni seguenti:

  • Può aggiungere un nuovo motore al profilo usando FileProfile::AddEngineAsync.
  • Può scaricare un motore dal profilo usando FileProfile::UnloadEngineAsync.

Poiché l'SDK implementa due Observer funzioni per ogni operazione asincrona, è possibile presupporre che quattroObserver metodi siano associati a FileProfile:

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

Classi osservatore di MIP SDK

MIP File SDK contiene due osservatori:

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

MIP Policy SDK ha un osservatore:

  • mip::Profile::Observer

MIP Protection SDK dispone di tre osservatori:

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

Passaggi successivi

Altre informazioni su come i vari SDK implementano e usano osservatori: