CORBA IDL вход, выход и выход - PullRequest
4 голосов
/ 07 июня 2011

Что конкретно означают операторы in, out и inout - «направленные» в параметрах функции CORBA IDL?

1 Ответ

7 голосов
/ 07 июня 2011

Из бесплатной онлайн-книги Кьярана Макхейла, CORBA объяснил просто :

Параметры операции имеют указанное направление, которое может быть in (это означает, что параметр передан с клиента на сервер), out (параметр передается из сервер обратно к клиенту) или inout (параметр передается в обоих направления).

Таким образом, параметр in очень похож на параметры «традиционной» функции в том, что вызывающая сторона должна передать для них значение, и это значение используется сервером для выполнения своей работы.

Параметр out подобен возвращаемому значению, поэтому вызывающая сторона никогда не заполняет его значением. Он просто волшебным образом имеет значение, когда функция возвращается (при условии, что исключение не было выдано), потому что сервер отвечает за помещение значения внутри него как часть своих правил выполнения. Вы можете иметь столько параметров out, сколько захотите, что позволяет вам возвращать несколько различных объектов или значений без необходимости сначала объединять их в struct.

Параметр inout объединяет две концепции выше. Вызывающая сторона должна заполнить все параметры inout действительными данными, но эти значения могут отличаться после возврата из-за того, что сервер может свободно добавлять туда новые данные.

...