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、操作、および属性については、以降の項を参照してください。