CORBA IDL in,out和inout

时间:2011-06-07 11:20:15

标签: corba idl

在“CORBA IDL”函数参数中,“定向”运算符的输入,输出和输入究竟是什么意思?

1 个答案:

答案 0 :(得分:7)

来自Ciaran McHale的免费在线图书CORBA Explained Simply

  

操作的参数有一个   指定方向,可以是in   (意思是传递参数   从客户端到服务器),out   (参数从中传递出来   服务器返回客户端)或inout   (参数在两者中传递   方向)。

因此in参数与“传统”函数参数非常相似,因为调用者必须为它们传递一个值,并且服务器使用该值来完成其工作。

out参数就像一个返回值,因此调用者永远不会用值填充它。它只是在函数返回时神奇地有一个值(假设没有抛出异常),因为服务器负责在其中放入一个值作为其执行规则的一部分。您可以根据需要添加任意数量的out参数,这样您就可以返回多个不同的对象或值,而无需先将它们组合成struct

inout参数结合了上述两个概念。调用者必须使用有效数据填充所有inout参数,但在函数返回后这些值可能会有所不同,因为服务器可以自由地将新数据放入其中。