atribut panggilan balik
Atribut [callback] mendeklarasikan fungsi panggilan balik statis yang ada di sisi klien aplikasi terdistribusi. Fungsi panggilan balik menyediakan cara bagi server untuk menjalankan kode pada klien.
[callback [ , function-attr-list] ] type-specifier [ptr-declarator] function-name(
[ [attribute-list] ] type-specifier [declarator]
, ...);
Parameter
-
function-attr-list
-
Menentukan nol atau lebih atribut yang berlaku untuk fungsi. Atribut fungsi yang valid adalah [lokal]; atribut pointer [ref], [unique], atau [ptr]; dan atribut penggunaan [string], [abaikan], dan [context_handle]. Pisahkan beberapa atribut dengan koma.
-
type-specifier
-
Menentukan pengidentifikasi base_type, struct, union, enum type, atau type. Spesifikasi penyimpanan opsional dapat mendahului type-specifier.
-
ptr-declarator
-
Menentukan nol atau lebih deklarator penunjuk. Deklarator penunjuk sama dengan deklarator penunjuk yang digunakan dalam C; ini dibangun dari * penunjuk, pengubah seperti jauh, dan konstan kualifikasi.
-
nama fungsi
-
Menentukan nama prosedur jarak jauh.
-
daftar atribut
-
Menentukan atribut arah nol atau lebih, atribut bidang, atribut penggunaan, dan atribut pointer yang sesuai untuk jenis parameter yang ditentukan. Pisahkan beberapa atribut dengan koma.
-
declarator
-
Menentukan deklarator C standar seperti pengidentifikasi, deklarator penunjuk, dan deklarator array. Untuk informasi selengkapnya, lihat Array dan Sized-Pointer Atribut, array, dan Array dan Pointer. Pengidentifikasi nama parameter bersifat opsional.
Keterangan
Fungsi [panggilan balik] berguna ketika server harus mendapatkan informasi dari klien. Jika aplikasi server didukung pada Windows 3. x, server dapat melakukan panggilan ke prosedur jarak jauh pada Windows 3. x server untuk mendapatkan informasi yang diperlukan. Fungsi panggilan balik menyelesaikan tujuan yang sama dan memungkinkan server mengkueri klien untuk informasi dalam konteks panggilan asli.
Panggilan balik adalah kasus khusus panggilan jarak jauh yang dijalankan sebagai bagian dari satu utas. Panggilan balik dikeluarkan dalam konteks panggilan jarak jauh. Prosedur jarak jauh apa pun yang didefinisikan sebagai bagian dari antarmuka yang sama dengan fungsi panggilan balik statis dapat memanggil fungsi panggilan balik.
Penting untuk dicatat bahwa penggunaan [panggilan balik] tidak disarankan dalam pemrograman multi-utas. Sebagai fungsi pemrograman utas tunggal, tidak dilengkapi untuk mendukung tuntutan keamanan yang disediakan lingkungan multi-utas.
Fungsi RpcCancelThread tidak dapat digunakan untuk membatalkan panggilan yang dapat mengirimkan panggilan balik statis. Jika panggilan prosedur jarak jauh tertentu tidak akan pernah menghasilkan panggilan balik, maka panggilan balik dapat dibatalkan. Jika tidak, panggilan hanya dapat dibatalkan jika dapat dijamin bahwa panggilan balik untuk panggilan balik belum dikeluarkan.
Hanya urutan berorientasi koneksi dan protokol lokal yang mendukung atribut panggilan balik. Ukuran data [keluar] untuk panggilan balik melalui urutan protokol lokal dibatasi hingga 150 byte. Jika antarmuka RPC menggunakan urutan protokol tanpa koneksi (datagram), panggilan ke prosedur dengan atribut panggilan balik akan gagal.
Handel tidak dapat digunakan sebagai parameter dalam fungsi panggilan balik. Karena panggilan balik selalu dijalankan dalam konteks panggilan, handel pengikatan yang digunakan oleh klien untuk melakukan panggilan ke server juga digunakan sebagai handel pengikatan dari server ke klien.
Panggilan balik dapat bersarang ke kedalaman apa pun.
Contoh
[callback] HRESULT DisplayString([in, string] char * p1);
Lihat juga