Project

General

Profile

バグ #2941

IDLファイルの中でRTCモジュールを使用した場合、生成されるコードに余計なモジュール名が付加される

Added by n.kawauchi almost 8 years ago. Updated almost 8 years ago.

Status:
新規
Priority:
通常
Assignee:
-
Target version:
-
Start date:
12/24/2013
Due date:
% Done:

0%

Estimated time:

Description

  • 具体例・・・以下のIDLを定義した場合、CalibrationServiceSVC_impl.cpp, CalibrationServiceSVC_impl.h ファイルの修正が必要となる
    #ifndef CALIBRATION_SERVICE_IDL
    #define CALIBRATION_SERVICE_IDL
    
    #include "InterfaceDataTypes.idl" 
    
    module ImageCalibService
    {
      interface CalibrationService 
      {
        RTC::CameraInfo getCalibParameter();
      };
    };
    
    #endif    /* CALIBRATION_SERVICE_IDL */
    
  • CalibrationServiceSVC_impl.hの修正箇所
    ImageCalibService::RTC::CameraInfo get_CalibParameter();
       ↓
    RTC::CameraInfo get_CalibParameter();
    
  • CalibrationServiceSVC_impl.cppの修正箇所
    ImageCalibService::RTC::CameraInfo CalibrationServiceSVC_impl::get_CalibParameter()
       ↓
    RTC::CameraInfo CalibrationServiceSVC_impl::get_CalibParameter()
    

History

#1 Updated by n.kawauchi almost 8 years ago

  • 関連して、IDLファイルでsequence型のメンバー変数を持つ構造体のデータ型の関数を定義した場合、RTCビルダーが自動生成するコードに不備がある
  • 具体例 ・・・ 次のIDLを使用
    #ifndef CALIBRATION_SERVICE_IDL
    #define CALIBRATION_SERVICE_IDL
    
    #include "InterfaceDataTypes.idl" 
    
    module ImageCalibService
    {
      typedef sequence<RTC::CameraImage> ImageList;
      interface CalibrationService 
      {
        RTC::CameraImage captureCalibImage(in short num);
      };
    };
    #endif    /* CALIBRATION_SERVICE_IDL */
    
  • CalibrationService.hh ではポインタ型で宣言されている(CameraImage型にsequence型メンバーが含まれている)
    virtual RTC::CameraImage* captureCalibImage(::CORBA::Short num) = 0;
    
  • CalibrationServiceSVC_impl(cpp,h)の方はポインタ型になっていないので、修正が必要
    RTC::CameraImage CalibrationServiceSVC_impl::captureCalibImage(CORBA::Short num)
        ↓
    RTC::CameraImage* CalibrationServiceSVC_impl::captureCalibImage(CORBA::Short num)
    

Also available in: Atom PDF