Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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::Observermip::FileHandler::Observer
SDK Kebijakan MIP hanya memiliki satu pengamat:
mip::Profile::Observer
SDK Perlindungan MIP memiliki tiga pengamat:
mip::ProtectionProfile::Observermip::ProtectionEngine::Observermip::ProtectionHandler::Observer
Langkah Selanjutnya
Pelajari selengkapnya tentang bagaimana pengamat diimplementasikan dan digunakan, oleh berbagai SDK: