操作
バグ #250
完了引数が sequence out/inout の場合のJava版コードジェネレータの問題
ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2008/11/18
期日:
進捗率:
100%
予定工数:
説明
outパラメータを持つインターフェース
typedef sequence<double> DoubleSeq;
interface TestService{
void testDoubleSeq(in DoubleSeq in_double, out DoubleSeq out_double);
};
をサービスポートのインターフェース定義として与えた場合、Java用に生成される実装コードが、
public void testDoubleSeq (double[] in_double, DoubleSeqHolderout_double)
ではなく、
public void testDoubleSeq(double[] in_double, double[] out_double)
になってしまう問題。
JavaConverter.java 内の関数 convCORBA2JavaforArg で、
if( blnSequence ) result = result + "[]";
を
if( blnSequence ) {
if( !strDirection.equals(dirIn) ) {
result = strCorba + "Holder";
} else {
result = result + "[]";
}
}
に修正することで正しい引数型名でサービス実装コードが出力される。
上記はRtcTemplateでのコードなので、RTCBuilderでは若干変更されている可能性があるので注意する必要がある。
操作