10.14.3 ORBInitInfoのメソッド
-
public java.lang.String[ ] arguments();
このメソッドは,ORB_init()に渡されたパラメタを返します。パラメタには,ORBのパラメタが含まれる場合も,含まれない場合もあります。
-
public java.lang.String orb_id();
このメソッドは,初期化中のORBのIDを返します。
-
public CodecFactory codec_factory();
このメソッドは,IOP_CodecFactoryを返します。通常,CodecFactoryは,ORB.resolve_initial_references("CodecFactory")を呼び出して取得しますが,その時点では,ORBはまだ使用できません。しかし,サービスコンテキスト処理時などに,インタセプタがCodecを必要とするため,Codecを取得する手段がORBの初期化時に必要となります。
-
public void register_initial_reference(
java.lang.String id, org.omg.CORBA.Object obj);
例えば,このメソッドがID「Y」とオブジェクト「YY」で呼び出されたあとに,register_initial_referenceメソッドが再び呼び出されると,オブジェクト「YY」が返されます。
このメソッドの機能は,ORB.register_initial_reference()と同一です。このメソッドは,ORBが完全に初期化されていないためにまだ使用できない場合に,インタセプタの登録の一部として初期リファレンスが必要となるときに使用します。なお,このメソッドとORB::register_initial_reference()との違いは,ORBのメソッドのバージョンはPIDL(CORBA.ORB.ObjectIdとCORBA.ORB.InvalidName)を使用し,インタフェースのバージョンは,インタフェースに定義されたIDLを使用する点です。構文に違いはありません。
このメソッドが空文字列IDで呼び出された場合,またはこのメソッドがすでに登録されているIDで呼び出された場合(OMG定義済みの既定の名前で呼び出された場合も含みます)は,register_initial_reference()でInvalidName例外が発生します。
-
id
初期リファレンスを認識するためのID
-
obj
初期リファレンス
-
-
org.omg.CORBA.Object resolve_initial_references(
java.lang.String id)
throws
InvalidName;
このメソッドは,post_init()呼び出し時にだけ有効です。このメソッドの機能はORB.resolve_initial_references()と同一です。このメソッドは,ORBが完全に初期化されていないためにまだ使用できない場合に,インタセプタの登録の一部として初期リファレンスが必要となるときに使用します。
-
id
初期リファレンスを認識するためのID
解決する名前が不正な場合,resolve_initial_references()ではInvalidName例外が発生します。
-
-
public void add_client_request_interceptor(
ClientRequestInterceptor interceptor)
throws
DuplicateName;
このメソッドは,クライアント側リクエストインタセプタの一覧に項目を追加するときに使用します。同じ名前のクライアント側リクエストインタセプタがすでに存在している場合は,DuplicateName例外が発生します。
-
interceptor
追加するClientRequestInterceptor
-
-
public void add_server_request_interceptor(
ServerRequestInterceptor interceptor)
throws
DuplicateName;
このメソッドは,サーバ側リクエストインタセプタの一覧に項目を追加するときに使用します。同じ名前のサーバ側リクエストインタセプタがすでに存在している場合は,DuplicateName例外が発生します。
-
interceptor
追加するServerRequestInterceptor
-
-
public void add_ior_interceptor(
IORInterceptor interceptor)
throws
DuplicateName;
このメソッドは,IORインタセプタの一覧に項目を追加するときに使用します。同じ名前のIORインタセプタがすでに存在している場合は,DuplicateName例外が発生します。
-
interceptor
追加するIORInterceptor
-
-
public int allocate_slot_id();
このメソッドは,割り当て済みスロットのインデックスを返します。
サービスは,allocate_slot_idを呼び出してPortableInterceptor.Currentのスロットを割り当てます。
- 注
-
スロットIDの割り当ては,ORBイニシャライザの内部でできますが,スロット自体は初期化できません。ORBイニシャライザの内部でCurrentのset_slot()またはget_slot()を呼び出すと,マイナーコード14のBAD_INV_ORDER例外が発生します。詳細については,「10.12 IORInterceptor」を参照してください。
-
public void register_policy_factory(
int type, PolicyFactory policy_factory);
このメソッドは,指定したPolicyTypeのPolicyFactoryを登録します。
指定したPolicyTypeのPolicyFactoryがすでに登録されている場合は,標準マイナーコード16のBAD_INV_ORDER例外が発生します。
-
type
指定したPolicyFactoryのCORBA.PolicyType
-
policy_factory
指定したCORBA.PolicyTypeのファクトリ
-