13.1.21 インタフェース
OMG IDLのインタフェースは、C++のクラスにマッピングされます。このクラスは、OMG IDLインタフェース内にある操作、属性、定数、およびユーザー定義の型(UDT)を格納します。
インタフェースINTFの場合、生成されるインタフェース・コードには、次の項目が格納されます:
- オブジェクト参照の型(INTF
_ptr) - オブジェクト参照の変数の型(INTF
_var) -
_duplicate静的メンバー関数 -
_narrow静的メンバー関数 -
_nil静的メンバー関数 - UDT
- 属性および操作のメンバー関数
たとえば、次のOMG IDL定義を考えます:
// OMG IDL
module INVENT
{
interface Order
{
void cancelOrder ();
};
};この定義は、次のようにC++にマッピングされます:
// C++
class INVENT
{
. . .
class Order;
typedef Order * Order_ptr;
class Order : public virtual CORBA::Object
{
. . .
static Order_ptr _duplicate(Order_ptr obj);
static Order_ptr _narrow(CORBA::Object_ptr obj);
static Order_ptr _nil();
virtual void cancelOrder () = 0;
. . .
};
};オブジェクト参照の型、静的メンバー関数、UDT、操作、および属性については、以降の項を参照してください。
親トピック: マッピング