|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
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)
註冊給定 PolicyType 的 PolicyFactory 。 |
Object |
resolve_initial_references(String id)
等同於 ORB.resolve_initial_references 。 |
方法詳細資訊 |
---|
String[] arguments()
ORB.init
的參數。它們可能包含 ORB 的參數,也可能不包含。
String orb_id()
CodecFactory codec_factory()
IOP.CodecFactory
。通常通過調用 ORB.resolve_initial_references( "CodecFactory" )
獲取 CodecFactory
,但是因為 ORB 當前不可用,而且 Interceptor(尤其是在處理服務上下文時)將請求 Codec
,所以必須在初始化 ORB 時獲取 Codec
的方法。
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
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
void add_client_request_interceptor(ClientRequestInterceptor interceptor) throws DuplicateName
interceptor
- 要添加的 ClientRequestInterceptor
。
DuplicateName
- 如果客戶端的請求 Interceptor 已經使用此 Interceptor 的名稱註冊。void add_server_request_interceptor(ServerRequestInterceptor interceptor) throws DuplicateName
interceptor
- 要添加的 ServerRequestInterceptor。
DuplicateName
- 如果伺服器端的請求 Interceptor 已經使用此 Interceptor 的名稱註冊。void add_ior_interceptor(IORInterceptor interceptor) throws DuplicateName
interceptor
- 要添加的 IORInterceptor。
DuplicateName
- 如果 IOR Interceptor 已經使用此 Interceptor 名稱註冊。int allocate_slot_id()
PortableInterceptor.Current
上分派槽 (slot)。
注意,可以在 ORB 初始化程序中分派槽的 id,但不能初始化槽本身。
BAD_INV_ORDER
- 如果在 ORB 初始化程序內對 PICurrent
調用 set_slot
或 get_slot
,則拋出此異常並帶有標準次要程式碼 14。Current
void register_policy_factory(int type, PolicyFactory policy_factory)
PolicyType
的 PolicyFactory
。
type
- 給定 PolicyFactory
服務的策略型別。policy_factory
- 給定策略型別的處理器。
BAD_INV_ORDER
- 如果已經存在給定 PolicyType
的 PolicyFactory
,則拋出此異常並帶有標準次要程式碼 16。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。