3.5.4 ファクトリの作成と登録

CORBAクライアント・アプリケーションから容易に見つかるように、CORBAサーバー・アプリケーションでファクトリを管理するには、そのファクトリをFactoryFinderオブジェクトに登録するコードを記述する必要があります。

CORBAサーバー・アプリケーションで管理されるファクトリを登録するコードを記述するには、次の手順に従います:

  1. ファクトリのオブジェクト参照を作成します。

    create_object_reference()メソッドの呼出しをコードに含めます。その際には、ファクトリのOMG IDLインタフェースのインタフェース・リポジトリIDまたはオブジェクトID (OID)を文字列形式で指定します。ルーティング基準を指定することも可能です。

  2. ファクトリをOracle Tuxedoドメインに登録します。

    register_factory()メソッドを使用すると、Oracle TuxedoドメインのFactoryFinderオブジェクトにファクトリを登録できます。register_factory()メソッドでは、ファクトリのオブジェクト参照と文字列識別子を指定する必要があります。

次のコード・スニペットは、ファクトリを作成および登録するSimpappサンプル・アプリケーションのコード・スニペットを示しています。

...
CORBA::Object_var v_reg_oref =
       TP:create_object_reference(
       _tc.SimpleFactory->id(),       //Factory Interface ID
       “simplefactory”,               //Object ID
        CORBA::NVList::_nil()        //Routing Criteria
      );
      TP::register_factory(
       CORBA::Object_var v_reg_oref.in(),
       _tc_SimpleFactory->id(),
      );
...

前述のコード・スニペットで、次の点に注意してください:

  • tc.SimpleFactory->id()は、SimpleFactoryオブジェクトのインタフェース・リポジトリIDをタイプコードから抽出して指定します。
  • CORBA::NVList::_nil()は、ルーティング基準が使用されないことを指定します。その結果として、Simpleオブジェクトで作成されたオブジェクト参照は、そのオブジェクト参照を作成したSimpleFactoryオブジェクトと同じグループにルーティングされます。