Microsoft Information Protection SDK - Konsep pengamat

MIP SDK dirancang agar hampir sepenuhnya asinkron. Misalnya, operasi apa pun yang mengakibatkan IO jaringan atau file dilakukan secara asinkron. Untuk menangani pemberitahuan peristiwa untuk peristiwa asinkron ini, SDK menggunakan pola pengamat.

Gambaran umum implementasi

Saat membuat objek yang akan melakukan operasi asinkron, Observer kelas harus diimplementasikan. Pengamat akan menerima peristiwa pemberitahuan yang terkait dengan berbagai operasi asinkron di MIP SDK, dan memberikan hasilnya kepada pemanggil.

Fungsi dalam setiap kelas Observer bersifat virtual dan dioverride untuk pola asinkron yang diutamakan. SDK mengimplementasikan pola pengamat pemberitahuan peristiwa melalui std::promise dan std::future.

Setiap observer spesifik kelas berisi serangkaian fungsi keberhasilan dan fungsi kesalahan/kegagalan yang menangani hasil dari operasi asinkron. Fungsi keberhasilan mengembalikan objek yang terkait dengan operasi. Kesalahan/Fungsi kegagalan mengembalikan pengecualian yang berisi detail tentang mengapa operasi tidak berhasil.

Sebagai contoh, FileProfile mendukung dua operasi berikut:

  • Ini dapat menambahkan mesin baru ke profil melalui FileProfile::AddEngineAsync.
  • Ini dapat membongkar mesin dari profil melalui FileProfile::UnloadEngineAsync.

Karena setiap operasi asinkron mengimplementasikan dua fungsi Observer, dapat diasumsikan bahwa ada empatObserver metode yang terkait dengan FileProfile:

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

Kelas Pengamat MIP SDK

SDK File MIP berisi dua pengamat:

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

SDK Kebijakan MIP hanya memiliki satu pengamat:

  • mip::Profile::Observer

SDK Perlindungan MIP memiliki tiga pengamat:

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

Langkah Selanjutnya

Pelajari selengkapnya tentang bagaimana pengamat diimplementasikan dan digunakan, oleh berbagai SDK: