Атрибуты направления, применяемые к параметру
Атрибуты направления [ in] и [ out] определяют, как клиент и сервер выделяют и освобождают память. В следующей таблице приводится сводная информация о влиянии атрибутов направления на выделение памяти.
Атрибут directional | Память на клиенте | Память на сервере |
---|---|---|
[ in] | Клиентское приложение должно выделить перед вызовом. | Выделение заглушки сервера. |
[ out] | Заглушка клиента выделяет при возврате. | Заглушка сервера выделяет только указатель верхнего уровня; серверное приложение должно выделить все внедренные указатели. Сервер также выделяет новые данные по мере необходимости. |
[вход, выход] | Клиентское приложение должно выделять исходные данные, передаваемые на сервер; заглушка клиента выделяет дополнительные данные. | Серверная заглушка выделяет исходные данные, передаваемые от клиента; серверное приложение выделяет новые данные по мере необходимости. |
Во всех этих случаях заглушка клиента не освобождает память. Клиентское приложение должно освободить память перед завершением работы. Серверная заглушка освобождает память при возврате вызова удаленной процедуры (с учетом атрибута [ allocate] ACF).