public interface ORBInitInfoOperations
ORBInitializer ,允许它在ORB初始化时注册拦截器并执行其他任务。
ORBInitInfo对象仅在ORB.init期间有效。 如果服务保持一个参考其ORBInitInfo对象,并尝试后使用它ORB.init返回时,对象不再存在,一个OBJECT_NOT_EXIST异常应被抛出。
ORBInitializer
| Modifier and Type | Method and Description |
|---|---|
void |
add_client_request_interceptor(ClientRequestInterceptor interceptor)
用于将客户端请求Interceptor添加到客户端请求拦截器列表中。
|
void |
add_ior_interceptor(IORInterceptor interceptor)
用于将IOR Interceptor添加到IOR拦截器列表中。
|
void |
add_server_request_interceptor(ServerRequestInterceptor interceptor)
用于将服务器端请求拦截器添加到服务器端请求拦截器列表中。
|
int |
allocate_slot_id()
呼叫在
PortableInterceptor.Current上分配一个时隙。
|
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)
注册一个
PolicyFactory对于给定
PolicyType 。
|
Object |
resolve_initial_references(String id)
相同于
ORB.resolve_initial_references 。
|
String[] arguments()
ORB.init 。
它们可能包含也可能不包含ORB的参数。
String orb_id()
CodecFactory codec_factory()
IOP.CodecFactory 。
所述CodecFactory通常通过调用获得ORB.resolve_initial_references( "CodecFactory" ) ,但由于ORB为尚未提供和拦截器,特别是处理服务上下文时,将需要一个Codec ,获得的一种手段Codec ORB初始化期间是必要的。
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 - 如果客户端请求拦截器已经使用此拦截器的名称注册,则抛出。
void add_server_request_interceptor(ServerRequestInterceptor interceptor) throws DuplicateName
interceptor - 要添加的ServerRequestInterceptor。
DuplicateName - 如果服务器端请求Interceptor已经使用此拦截器的名称注册,则抛出
void add_ior_interceptor(IORInterceptor interceptor) throws DuplicateName
interceptor - 要添加的IORInterceptor。
DuplicateName - 如果IOR Interceptor已经使用此拦截器的名称注册,则抛出。
int allocate_slot_id()
PortableInterceptor.Current上分配一个时隙。
请注意,虽然槽号可以在ORB初始化程序中分配,但槽本身不能被初始化。
BAD_INV_ORDER -抛出,以14标准次要代码,如果
set_slot或
get_slot被称为在
PICurrent的ORB初始化内。
Current
void register_policy_factory(int type,
PolicyFactory policy_factory)
PolicyFactory为给定的
PolicyType 。
type - 给定的
PolicyFactory服务的策略类型。
policy_factory - 给定政策类型的工厂。
BAD_INV_ORDER - thrown, with a standard minor code of 16, if a
PolicyFactory already exists for the given
PolicyType.
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.