コードがあるので、これは不可能です。アプリケーションで使用している IDL 型と同等の IDL 型を指定する必要があります。また、CORBA IDL で定義されている型とアプリケーションで定義されている型との間の変換関数も提供する必要があります。利点として、独自の型を内部で使用しているため、通信 (または RPC) テクノロジの将来の変更に対してアプリケーションを盲目にすることができます。この場合、ドキュメントを見ると、QWSPointerCalibrationData
型には 2 つのデータ メンバーがあります。
QPoint devPoints[5]
QPoint screenPoints[5]
次に、IDL で最初にQPoint
型を宣言し、次に ( CORBA 型を示すためQWSPointerCalibrationData
に名前の前に を付けます) を宣言する必要があります。C_
// IDL
struct C_Point { long x; long y; };
typedef sequence<C_Point> Points;
struct C_WSPointerCalibrationData
{
Points devPoints;
Points screenPoints;
};
次に、サーバーメソッドは次のようにする必要があります。
CORBA::Boolean Calibrate( C_QWSPointerCalibrationData const& data )
{
QWSPointerCalibrationData qpcd = convert_from_CORBA_QWSPointerCalibrationData(data);
// use qpcd as usual here
}
また、関数を自分で作成する必要がありますconvert_from_CORBA_QWSPointerCalibrationData
(および、その型を CORBA の対応する型に変換する対応するもの)。その変換を行うために利用できるツールがいくつかありますが、そうです、それは残念です。