プロジェクト

全般

プロフィール

バグ #250

完了

引数が sequence out/inout の場合のJava版コードジェネレータの問題

n-ando さんが約16年前に追加. 約16年前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
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では若干変更されている可能性があるので注意する必要がある。

他の形式にエクスポート: Atom PDF