JavaTM 2 Platform
Standard Ed. 6

org.omg.PortableInterceptor
介面 ORBInitInfoOperations

所有已知子介面:
ORBInitInfo

public interface ORBInitInfoOperations

傳遞給每個 ORBInitializer,允許其在初始化 ORB 時註冊 interceptor 並執行其他職責。

ORBInitInfo 物件只在 ORB.init 期間有效。如果服務保持對其 ORBInitInfo 物件的參考,並試圖在 ORB.init 返回後使用該物件,則該物件將不再存在,並拋出 OBJECT_NOT_EXIST 異常。

另請參見:
ORBInitializer

方法摘要
 void add_client_request_interceptor(ClientRequestInterceptor interceptor)
          此方法用來將客戶端的請求 Interceptor 添加到客戶端請求 Interceptor 列表。
 void add_ior_interceptor(IORInterceptor interceptor)
          此方法用來將 IOR Interceptor 添加到 IOR Interceptor 列表。
 void add_server_request_interceptor(ServerRequestInterceptor interceptor)
          此方法用來將伺服器端的請求 Interceptor 添加到伺服器端請求 Interceptor 列表。
 int allocate_slot_id()
          調用此方法來在 PortableInterceptor.Current 上分派槽 (slot)。
 String[] arguments()
          返回傳遞給 ORB.init 的參數。
 CodecFactory codec_factory()
          返回 IOP.CodecFactory
 String orb_id()
          返回將被初始化的 ORB 的 ID。
 void register_initial_reference(String id, Object obj)
          等同於 ORB.register_initial_reference
 void register_policy_factory(int type, PolicyFactory policy_factory)
          註冊給定 PolicyTypePolicyFactory
 Object resolve_initial_references(String id)
          等同於 ORB.resolve_initial_references
 

方法詳細資訊

arguments

String[] arguments()
返回傳遞給 ORB.init 的參數。它們可能包含 ORB 的參數,也可能不包含。


orb_id

String orb_id()
返回將被初始化的 ORB 的 ID。


codec_factory

CodecFactory codec_factory()
返回 IOP.CodecFactory。通常通過調用 ORB.resolve_initial_references( "CodecFactory" ) 獲取 CodecFactory,但是因為 ORB 當前不可用,而且 Interceptor(尤其是在處理服務上下文時)將請求 Codec,所以必須在初始化 ORB 時獲取 Codec 的方法。


register_initial_reference

void register_initial_reference(String id,
                                Object obj)
                                throws InvalidName
等同於 ORB.register_initial_reference。這裡提供一個具有相同功能的方法是因為:未完全初始化的 ORB 當前不可用,但是初始參考可能需要作為 Interceptor 註冊的一部分被註冊。唯一的不同之處在於,ORB 中的這一操作使用 PIDL (CORBA.ORB.ObjectId) 和 (CORBA.ORB.InvalidName),而此介面中的這一操作使用此介面中定義的 IDL;語義是等同的。

拋出:
InvalidName

resolve_initial_references

Object resolve_initial_references(String id)
                                  throws InvalidName
等同於 ORB.resolve_initial_references。這裡提供一個具有相同功能的方法是因為:未完全初始化的 ORB 當前不可用,但是 ORB 中的初始參考可能需要作為 Interceptor 註冊的一部分。唯一的不同之處在於,ORB 中的這一操作使用 PIDL (CORBA::ORB::ObjectId) 和 (CORBA::ORB::InvalidName),而此介面中的這一操作使用此介面中定義的 IDL;語義是等同的。

此操作僅在 post_init 期間有效。

拋出:
InvalidName

add_client_request_interceptor

void add_client_request_interceptor(ClientRequestInterceptor interceptor)
                                    throws DuplicateName
此方法用來將客戶端的請求 Interceptor 添加到客戶端請求 Interceptor 列表。

參數:
interceptor - 要添加的 ClientRequestInterceptor
拋出:
DuplicateName - 如果客戶端的請求 Interceptor 已經使用此 Interceptor 的名稱註冊。

add_server_request_interceptor

void add_server_request_interceptor(ServerRequestInterceptor interceptor)
                                    throws DuplicateName
此方法用來將伺服器端的請求 Interceptor 添加到伺服器端請求 Interceptor 列表。

參數:
interceptor - 要添加的 ServerRequestInterceptor。
拋出:
DuplicateName - 如果伺服器端的請求 Interceptor 已經使用此 Interceptor 的名稱註冊。

add_ior_interceptor

void add_ior_interceptor(IORInterceptor interceptor)
                         throws DuplicateName
此方法用來將 IOR Interceptor 添加到 IOR Interceptor 列表。

參數:
interceptor - 要添加的 IORInterceptor。
拋出:
DuplicateName - 如果 IOR Interceptor 已經使用此 Interceptor 名稱註冊。

allocate_slot_id

int allocate_slot_id()
調用此方法來在 PortableInterceptor.Current 上分派槽 (slot)。

注意,可以在 ORB 初始化程序中分派槽的 id,但不能初始化槽本身。

返回:
已經分派的槽的索引。
拋出:
BAD_INV_ORDER - 如果在 ORB 初始化程序內對 PICurrent 調用 set_slotget_slot,則拋出此異常並帶有標準次要程式碼 14。
另請參見:
Current

register_policy_factory

void register_policy_factory(int type,
                             PolicyFactory policy_factory)
註冊給定 PolicyTypePolicyFactory

參數:
type - 給定 PolicyFactory 服務的策略型別。
policy_factory - 給定策略型別的處理器。
拋出:
BAD_INV_ORDER - 如果已經存在給定 PolicyTypePolicyFactory,則拋出此異常並帶有標準次要程式碼 16。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only