CORBA 操作には、サーバーによって変更可能なパラメーターを指定できます。
CORBA 操作には、in、out、および inout パラメーターを指定できます。 in および inout パラメーターは、CORBARequest ノードに移動する際の DataObject ドメインの下にあるツリーの外観を示します。 戻りの型、および inout と out パラメーターは、CORBARequest ノードから出るときのツリーの外観を示します。
インバウンド・メッセージは、エレメント interfaceName.operationName に含まれていて、それぞれの in または inout パラメーターに対して 1 つずつのエレメントを必要とします。 インターフェースがモジュールに含まれている場合、名前はモジュールの名前で修飾されます。 モジュールが他のモジュールにネストされている場合は、すべてのモジュール名が含められます (moduleNameA.moduleNameB.interfaceName.operationName など)。 クライアントは out パラメーターについて値を送信しないので、out パラメーターは必要ありません。 これらのエレメントは、IDL ファイル内のパラメーターと同じ順序でなければなりません。
CORBARequest ノードからの出力メッセージは、エレメント interfaceName.operationNameResponse に含まれています。 インターフェースがモジュールに含まれている場合、名前はモジュール名で修飾されます。 アウトバウンド・メッセージには、戻りの型のためのエレメント (_return という名前) と、それぞれの inout および out パラメーターに対して 1 つずつのエレメントがあります。
interface exampleInterface {
string outsideModuleOperation(in string one, out string two, inout string three);
};
入力メッセージは、以下の例のようになります。<exampleInterface.outsideModuleOperation>
<one>something</one>
<three>something</three>
</exampleInterface.outsideModuleOperation>
出力メッセージは、以下の例のようになります。<exampleInterface.outsideModuleOperationResponse>
<_return>something</_return>
<two>something</two>
<three>something</three>
</exampleInterface.outsideModuleOperationResponse>
入力メッセージは、すべて in および inout パラメーターを必要とするので、one および three が指定されます。 出力には、以下のエレメントがあります。例外は、DataObject ドメインの下にある Error ターミナルに伝搬されます。 メッセージの構造は、例外によって異なります。
exception BadRecord {
string why;
};
interface SomeInterface {
long bar(in float pi) raises (BadRecord);
};
操作 bar は、例外 BadRecord を発行することがあります。 この例外が発行された場合、以下のメッセージが Error ターミナルに伝搬されます。<BadRecord>
<why>Reason text</why>
</BadRecord>
interface exampleInterface {
string exampleOne();
void exampleTwo(in string one);
};
入力メッセージ: CORBARequest ノードはメッセージの本体を読み取らないので、入力メッセージは無関係です。
<exampleInterface.exampleOneResponse>
<_return>something</_return>
</exampleInterface.exampleOneResponse>
<exampleInterface.exampleTwo>
<one>something</one>
</exampleInterface.exampleTwo>
<exampleInterface.exampleTwoResponse>
</exampleInterface.exampleTwoResponse>