Microsoft Information Protection SDK - Concetti relativi agli osservatori

MIP SDK è progettato per essere quasi completamente asincrono. Ad esempio, qualsiasi operazione con conseguente I/O di rete o file viene eseguita 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, è necessario implementare una Observer classe . Gli osservatori riceveranno gli eventi di notifica correlati alle varie operazioni asincrone nell'SDK MIP e forniranno il risultato al chiamante.

Le funzioni in ogni Observer classe sono virtuali e vengono sottoposte a override per il modello asincrono preferito. L'SDK implementa il modello observer di notifica eventi tramite std::promise e std::future.

Ogni osservatore specifico della classe contiene un set di funzioni di esito positivo e di errore/errore, per il risultato 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 tramite FileProfile::AddEngineAsync.
  • Può scaricare un motore dal profilo tramite FileProfile::UnloadEngineAsync.

Poiché due Observer funzioni vengono implementate per ogni operazione asincrona, si può presumere che siano presenti quattroObserver metodi associati a FileProfile:

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

Classi observer di MIP SDK

MIP File SDK contiene due osservatori:

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

MIP Policy SDK ha un solo osservatore:

  • mip::Profile::Observer

MIP Protection SDK dispone di tre osservatori:

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

Passaggi successivi

Altre informazioni sul modo in cui gli osservatori vengono implementati e usati dai vari SDK: