atribut explicit_handle
Atribut ACF [explicit_handle] menentukan bahwa setiap prosedur memiliki, sebagai parameter pertamanya, handel primitif, seperti jenis handle_t .
[
explicit_handle
]
interface interface-name
{
...
}
Parameter
-
nama antarmuka
-
Menentukan nama antarmuka.
Keterangan
Saat Anda menggunakan atribut [explicit_handle] , setiap prosedur memiliki handel primitif sebagai parameter pertamanya bahkan jika file IDL tidak berisi handel ini dalam daftar parameternya. Prototipe yang dipancarkan ke file header dan rutinitas stub berisi parameter tambahan, dan parameter tersebut digunakan sebagai handel untuk mengarahkan panggilan jarak jauh.
Atribut [explicit_handle] memengaruhi prosedur jarak jauh dan prosedur serialisasi. Untuk serialisasi jenis, rutinitas dukungan dihasilkan dengan parameter awal sebagai handel eksplisit (serialisasi). Jika atribut [explicit_handle] tidak digunakan, aplikasi masih dapat menentukan bahwa operasi memiliki handel eksplisit (pengikatan atau serialisasi) yang mengarahkan panggilan. Untuk melakukan ini, prototipe dengan argumen yang berisi jenis handel disediakan ke file IDL. Perhatikan bahwa dalam mode default, argumen yang tidak muncul terlebih dahulu juga dapat digunakan sebagai handel yang mengarahkan panggilan.
Oleh karena itu, meskipun atribut [explicit_handle] adalah cara memberikan prototipe IDL atribut primitif [explicit_handle ], atribut tersebut tidak selalu memerlukan perubahan pada file IDL. Dalam mode /osf hanya argumen pertama yang dapat digunakan sebagai jenis handel eksplisit.
Atribut [explicit_handle] dapat digunakan sebagai atribut antarmuka atau atribut operasi. Sebagai atribut antarmuka, ini memengaruhi semua operasi di antarmuka dan semua jenis yang memerlukan dukungan serialisasi. Namun, jika digunakan sebagai atribut operasi, itu hanya memengaruhi operasi tertentu. Jika metode berisi satu atau beberapa handel konteks [in], handel konteks paling kiri [dalam] digunakan sebagai handel pengikatan, dan tidak ada handel eksplisit tambahan yang dibuat.
Contoh
/* ACF File */
[
explicit_handle
]
interface iface
{
// Interface definition statements.
};
Lihat juga