in、out、inout - CORBA IDL 関数パラメータでの「方向」演算子の意味は何ですか?
1 に答える
Ciaran McHale の無料のオンライン ブック、CORBA Explained Simplyから:
操作のパラメーターには指定された方向があります。これは、
in
(パラメーターがクライアントからサーバーに渡されることを意味する)、out
(パラメーターがサーバーからクライアントに戻される)、またはinout
(パラメーターが両方向に渡されることを意味します) のいずれかです。 )。
したがって、in
パラメーターは、呼び出し元が値を渡す必要があり、サーバーがその値を使用して作業を行うという点で、「従来の」関数パラメーターに非常に似ています。
out
パラメータは戻り値のようなものであるため、呼び出し元が値を設定することはありません。サーバーは実行ルールの一部として値を内部に入れる責任があるため、関数が返されたときに(例外がスローされなかったと仮定して)魔法のように値を持っています。パラメータは必要な数だけ持つことができるため、out
複数の個別のオブジェクトまたは値を最初に に結合することなく返すことができますstruct
。
inout
パラメータは、上記の 2 つの概念を組み合わせたものです。呼び出し元はすべてのinout
パラメーターに有効なデータを設定する必要がありますが、サーバーは新しいデータを自由に配置できるため、関数が戻った後はそれらの値が異なる場合があります。