atributo explicit_handle
El atributo ACF [explicit_handle] especifica que cada procedimiento tiene, como primer parámetro, un identificador primitivo, como un tipo de handle_t .
[
explicit_handle
]
interface interface-name
{
...
}
Parámetros
-
interface-name
-
Especifica el nombre de la interfaz.
Comentarios
Cuando se usa el atributo [explicit_handle], cada procedimiento tiene un identificador primitivo como primer parámetro aunque el archivo IDL no contenga este identificador en su lista de parámetros. Los prototipos emitidos para el archivo de encabezado y las rutinas de código auxiliar contienen el parámetro adicional y ese parámetro se usa como identificador para dirigir la llamada remota.
El atributo [explicit_handle] afecta tanto a procedimientos remotos como a procedimientos de serialización. Para la serialización de tipos, las rutinas de compatibilidad se generan con el parámetro inicial como identificador explícito (serialización). Si no se usa el atributo [explicit_handle], la aplicación todavía puede especificar que una operación tenga un identificador explícito (enlace o serialización) que dirija la llamada. Para ello, se proporciona un prototipo con un argumento que contiene un tipo de identificador al archivo IDL. Tenga en cuenta que, en el modo predeterminado, un argumento que no aparece primero también se puede usar como identificador que dirige la llamada.
Por lo tanto, aunque el atributo [explicit_handle] es una manera de dar al prototipo IDL un atributo primitivo [explicit_handle], no requiere necesariamente un cambio en el archivo IDL. En el modo /osf , solo se puede usar el primer argumento como un tipo de identificador explícito.
El atributo [explicit_handle] se puede usar como atributo de interfaz o como atributo de operación. Como atributo de interfaz, afecta a todas las operaciones de la interfaz y a todos los tipos que requieren compatibilidad con la serialización. Sin embargo, si se usa como atributo de operación, solo afecta a esa operación en particular. Si un método contiene uno o varios identificadores de contexto [in], el identificador de contexto más a la izquierda se usa como identificador de enlace y no se crea ningún identificador explícito adicional.
Ejemplos
/* ACF File */
[
explicit_handle
]
interface iface
{
// Interface definition statements.
};
Vea también