Atributo idempotente
O atributo [idempotente] especifica que uma operação não modifica informações de estado e retorna os mesmos resultados sempre que é executada. Executar a rotina mais de uma vez tem o mesmo efeito que executá-la uma vez.
[
interface-attribute-list
]
interface interface-name
{
[idempotent [, attribute-list]] returntype function-name(params)
}
-
interface-attribute-list
-
Especifica uma lista de zero ou mais atributos IDL que se aplicam à interface como um todo. Quando dois ou mais atributos de interface estão presentes, eles devem ser separados por vírgulas.
-
interface-name
-
Especifica o nome da interface.
-
attribute-list
-
Especifica atributos adicionais a serem aplicados à função. Separe vários atributos com vírgulas.
-
Returntype
-
Especifica o tipo de retorno da função.
-
function-name
-
Especifica o nome da função à qual o atributo [idempotente] será aplicado.
-
params
-
Lista de parâmetros de função.
O RPC dá suporte a dois tipos de semântica de chamada remota: chamadas para operações com o atributo [idempotente] e chamadas para operações (operações idempotentes ) sem o atributo [idempotente] (operações não idempotentes ). Uma operação idempotente pode ser executada mais de uma vez sem nenhum efeito inadequado. Por outro lado, uma operação não idempotente não pode ser executada mais de uma vez porque retornará resultados diferentes a cada vez ou porque modifica algum estado.
Para garantir que um procedimento seja executado novamente automaticamente se a chamada não for concluída, use o atributo [idempotente] . Se os atributos [idempotent], [broadcast], ou [maybe] não estiverem presentes, o procedimento usará semântica não idempotente por padrão. Nesse caso, a operação é executada apenas uma vez.