atributo explicit_handle

O atributo ACF [explicit_handle] especifica que cada procedimento tem, como seu primeiro parâmetro, um identificador primitivo, como um tipo de handle_t .

[
    explicit_handle
] 
interface interface-name
{
    ...
}

Parâmetros

interface-name

Especifica o nome da interface.

Comentários

Quando você usa o atributo [explicit_handle] , cada procedimento tem um identificador primitivo como seu primeiro parâmetro, mesmo que o arquivo IDL não contenha esse identificador em sua lista de parâmetros. Os protótipos emitidos para o arquivo de cabeçalho e as rotinas stub contêm o parâmetro adicional e esse parâmetro é usado como o identificador para direcionar a chamada remota.

O atributo [explicit_handle] afeta procedimentos remotos e procedimentos de serialização. Para serialização de tipo, as rotinas de suporte são geradas com o parâmetro inicial como um identificador explícito (serialização). Se o atributo [explicit_handle] não for usado, o aplicativo ainda poderá especificar que uma operação tenha um identificador explícito (associação ou serialização) direcionando a chamada. Para fazer isso, um protótipo com um argumento que contém um tipo de identificador é fornecido ao arquivo IDL. Observe que, no modo padrão, um argumento que não aparece primeiro também pode ser usado como um identificador que direciona a chamada.

Portanto, embora o atributo [explicit_handle] seja uma maneira de dar ao protótipo de IDL um atributo primitivo [explicit_handle] , ele não requer necessariamente uma alteração no arquivo IDL. No modo /osf , somente o primeiro argumento pode ser usado como um tipo de identificador explícito.

O atributo [explicit_handle] pode ser usado como um atributo de interface ou um atributo de operação. Como um atributo de interface, ele afeta todas as operações na interface e todos os tipos que exigem suporte à serialização. Se, no entanto, ele for usado como um atributo de operação, ele afetará apenas essa operação específica. Se um método contiver um ou mais identificadores de contexto [in], o identificador de contexto mais à esquerda [in] será usado como o identificador de associação e nenhum identificador explícito adicional será criado.

Exemplos

/* ACF File */ 
[
    explicit_handle
] 
interface iface
{ 
    // Interface definition statements.
};

Confira também

AcF (Arquivo de Configuração de Aplicativo)

auto_handle

implicit_handle

/Osf