操作
バグ #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では若干変更されている可能性があるので注意する必要がある。
操作