16.5 IRへのアクセス

クライアントプログラムは,IRのIDLインタフェースを使用して,IR内のオブジェクトについて情報を取得できます。クライアントプログラムはRepositoryにバインドして,コードサンプル16-1に示すメソッドを呼び出せます。このインタフェースの詳細については,マニュアル「Borland Enterprise Server VisiBroker プログラマーズリファレンス」の「インタフェースリポジトリインタフェースとクラス」の記述を参照してください。

コードサンプル16-1 リポジトリクラス(C++)

class CORBA {
  class Repository : public Container {
     . . .
     CORBA::Contained_ptr lookup_id(
           const char * search_id);
     CORBA::PrimitiveDef_ptr get_primitive(
           CORBA::PrimitiveKind kind);
     CORBA::StringDef_ptr create_string(
           CORBA::ULong bound);
     CORBA::SequenceDef_ptr create_sequence(
           CORBA::ULong bound,
           CORBA::IDLType_ptr element_type);
     CORBA::ArrayDef_ptr create_array(
           CORBA::ULong length,
           CORBA::IDLType_ptr element_type);
     . . .
  };
  . . .
};

IRを使用するプログラムは,-D_VIS_INCLUDE_IRフラグでコンパイルする必要があります。
コードサンプル16-2 リポジトリインタフェース(Java)

package org.omg.CORBA;
public interface Repository extends Container {
  . . .
  org.omg.CORBA.Contained lookup_id(string id);
  org.omg.CORBA.PrimitiveDef get_primitive(
                    org.omg.CORBA.PrimitiveKind kind);
  org.omg.CORBA.StringDef create_string(long bound);
  org.omg.CORBA.SequenceDef create_sequence(long bound,
                    org.omg.CORBA.IDLType element_type);
  org.omg.CORBA.ArrayDef create_array(long length,
                    org.omg.CORBA.IDLType element_type);
  . . .
}