-
- All Known Subinterfaces:
-
ORBInitInfo
public interface ORBInitInfoOperations
传递给每个ORBInitializer
,允许它在ORB初始化时注册拦截器并执行其他任务。ORBInitInfo
对象仅在ORB.init
期间有效。 如果服务保留对其ORBInitInfo
对象的引用,并尝试在ORB.init
返回后使用该对象,则该对象不再存在,并且将抛出一个OBJECT_NOT_EXIST
异常。- 另请参见:
-
ORBInitializer
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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
相同。
-
-
-
方法详细信息
-
arguments
String[] arguments()
返回传递给ORB.init
的参数。 它们可能包含也可能不包含ORB的参数。
-
orb_id
String orb_id()
返回正在初始化的ORB的ID。
-
codec_factory
CodecFactory codec_factory()
返回IOP.CodecFactory
。CodecFactory
通常是通过调用ORB.resolve_initial_references( "CodecFactory" )
获得的,但是由于ORB尚不可用,特别是在处理业务上下文时,Interceptors将需要一个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
- 要添加的ClientRequestInterceptor
。 - 异常
-
DuplicateName
- 如果客户端请求Interceptor已经使用此拦截器的名称注册,则抛出此异常。
-
add_server_request_interceptor
void add_server_request_interceptor(ServerRequestInterceptor interceptor) throws DuplicateName
用于将服务器端请求拦截器添加到服务器端请求拦截器列表中。- 参数
-
interceptor
- 要添加的ServerRequestInterceptor。 - 异常
-
DuplicateName
- 如果服务器端请求Interceptor已经使用此拦截器的名称注册,则抛出该错误
-
add_ior_interceptor
void add_ior_interceptor(IORInterceptor interceptor) throws DuplicateName
用于将IOR Interceptor添加到IOR拦截器列表中。- 参数
-
interceptor
- 要添加的IORInterceptor。 - 异常
-
DuplicateName
- 如果IOR Interceptor已经使用此Interceptor的名称注册,则抛出。
-
allocate_slot_id
int allocate_slot_id()
呼叫在PortableInterceptor.Current
分配一个插槽。请注意,虽然槽号可以在ORB初始化程序中分配,但槽本身不能被初始化。
- 结果
- 已分配的插槽的索引。
- 异常
-
BAD_INV_ORDER
- 抛出,标准的次要代码为14,如果set_slot
或PICurrent
在ORB初始化程序中的get_slot
上调用。 - 另请参见:
-
Current
-
register_policy_factory
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 aPolicyFactory
already exists for the givenPolicyType
.
-
-