Поделиться через


идемпотентный атрибут

Атрибут [idempotent] указывает, что операция не изменяет сведения о состоянии и возвращает одни и те же результаты при каждом выполнении. Выполнение подпрограммы более одного раза имеет тот же эффект, что и однократное выполнение.

[
    interface-attribute-list
] 
interface interface-name 
{
    [idempotent [, attribute-list]] returntype function-name(params)
}

Параметры

interface-attribute-list

Задает список из нуля или нескольких атрибутов IDL, которые применяются к интерфейсу в целом. При наличии двух или более атрибутов интерфейса они должны быть разделены запятыми.

interface-name

Указывает имя интерфейса.

список атрибутов

Указывает дополнительные атрибуты, применяемые к функции. Разделяйте несколько атрибутов запятыми.

Returntype

Указывает тип возвращаемого значения функции.

function-name

Указывает имя функции, к которой будет применен атрибут [idempotent] .

params

Список параметров функции.

Комментарии

RPC поддерживает два типа семантики удаленных вызовов: вызовы операций с атрибутом [идемпотентный] и вызовы операций (идемпотентных операций) без атрибута [идемпотентные] (неидемпотентные операции). Идемпотентная операция может быть проведена более одного раза без плохого эффекта. И наоборот, неидемпотентная операция не может быть выполнена более одного раза, так как она будет возвращать разные результаты каждый раз или потому, что изменяет некоторое состояние.

Чтобы убедиться, что процедура автоматически выполняется повторно, если вызов не завершается, используйте атрибут [идемпотентный] . Если атрибуты [идемпотентные], [широковещательные] или [возможно] отсутствуют, процедура будет использовать неидемпотентную семантику по умолчанию. В этом случае операция выполняется только один раз.

См. также раздел

Трансляции

Файл определения интерфейса (IDL)

Может