Attributo idempotente
L'attributo [idempotente] specifica che un'operazione non modifica le informazioni sullo stato e restituisce gli stessi risultati ogni volta che viene eseguita. L'esecuzione della routine più di una volta ha lo stesso effetto dell'esecuzione.
[
interface-attribute-list
]
interface interface-name
{
[idempotent [, attribute-list]] returntype function-name(params)
}
Parametri
-
interface-attribute-list
-
Specifica un elenco di zero o più attributi IDL che si applicano all'interfaccia nel suo complesso. Quando sono presenti due o più attributi di interfaccia, devono essere separati da virgole.
-
nome dell'interfaccia
-
Specifica il nome dell'interfaccia.
-
attribute-list
-
Specifica attributi aggiuntivi da applicare alla funzione. Separare più attributi con virgole.
-
Returntype
-
Specifica il tipo restituito della funzione.
-
nome funzione
-
Specifica il nome della funzione a cui verrà applicato l'attributo [idempotente].
-
params
-
Elenco dei parametri della funzione.
Commenti
RPC supporta due tipi di semantica delle chiamate remote: chiamate alle operazioni con l'attributo [idempotente] e le chiamate alle operazioni (operazioni idempotenti ) senza l'attributo [idempotente] (operazioni non idempotenti ). Un'operazione idempotente può essere eseguita più volte senza alcun effetto male. Al contrario, un'operazione non idempotente non può essere eseguita più di una volta perché restituirà risultati diversi ogni volta o perché modifica uno stato.
Per assicurarsi che una routine venga eseguita automaticamente se la chiamata non viene completata, usare l'attributo [idempotente]. Se gli attributi [idempotenti], [broadcast]o [forse] non sono presenti, la procedura userà la semantica non idempotente per impostazione predefinita. In questo caso, l'operazione viene eseguita una sola volta.
Vedi anche