|
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。