プロジェクト

全般

プロフィール

バグ #4220

未完了

RTC Builderを用いて自作IDLに定義したサービスポートを持つRTCのコードを生成した際の不具合

takahashi さんが約7年前に追加. 約7年前に更新.

ステータス:
解決
優先度:
通常
担当者:
takahashi
対象バージョン:
開始日:
2017/10/12
期日:
2017/10/20 (7年以上 遅れ)
進捗率:

100%

予定工数:

説明

penRTM-MLの皆様

名城大学の大原です.
(MLに投稿されているメールは追っているつもりですが,既報でしたら申し訳ございません.)

IDLファイルに自身でインタフェースを定義し,その作成したIDLファイルを用いて,
RTC Builderからひな形の出力を行っているのですが,出力されるコードに
おかしい部分が確認されたため,質問を含めて投稿しました.

環境はOpenRTM-aist-1.1.2,OpenRTP-1.1.2(全部入りを利用)
現象の確認はWindows7(VS2013)とUbuntu14.04/16.04の双方で行っております.

前提として,RTC Builderにおいて,自作したIDLファイルの保存されたフォルダへのパスは通しております.
(【例】/home/<UserName>/workspace/IDL)
その上で,新規にRTCのひな形を作成.このとき,サービスポートに,自身で作成したIDLファイルに記載した
インタフェースを利用するように設定し,コードを生成いたしました.
(プロバイダとして生成しています.)

このとき,サービスポート用のコードとして,<MobuleName>SVC_impl.hのようなファイルが生成されますが,
この中で,

クラス名が,<Module名>_<Interface名>SVC_implとなっている一方で,
コンストラクタが<Interface名>SVC_impl()となっており,このままではコンパイルが通らない状態の
コードが生成されます.
一方で,デストラクタについては,~<Module名>_<Interface名>SVC_impl()となっております.

前述のように複数の動作環境で試しましたが,同様の状況です.
(とりあえず...と思い,共通インタフェースとして提案させていただいているImg.idlというIDLファイルでテストしました.)
当然ですが,コンストラクタをクラス名と同じように修正すれば,コンパイルは通ります.
不具合かと思い,ご連絡させていただきましたが,当方のミスでしたら申し訳ございません.

また,以前は,素直に<Interface名>SVC_implという名前のクラスだった様な気もするのですが,
いつこちらの仕様が変わったのかについてもお教えいただけると幸いです.
(WebCameraのRTCを公開していて,同時期に公開したものは上記のようなクラスの命名になっていたので.)

長文で申し訳ございませんが,どうぞよろしくお願いいたします.

takahashi さんが約7年前に更新

  • ステータス新規 から 解決 に変更
  • 進捗率0 から 100 に変更

テンプレートの修正漏れを対応.
getBasename() -> getBasename2

rtmtools/jp.go.aist.rtm.rtcbuilder/src/jp/go/aist/rtm/rtcbuilder/template/cpp/CXX_SVC.h.vsl

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