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
.