JavaTM Platform
Standard Ed. 6

org.omg.PortableInterceptor
接口 ORBInitInfoOperations

所有已知子接口:
ORBInitInfo

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)
          注册给定 PolicyTypePolicyFactory
 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。通常通过调用 ORB.resolve_initial_references( "CodecFactory" ) 获取 CodecFactory,但是因为 ORB 当前不可用,而且 Interceptor(尤其是在处理服务上下文时)将请求 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 列表。

参数:
interceptor - 要添加的 ClientRequestInterceptor
抛出:
DuplicateName - 如果客户端的请求 Interceptor 已经使用此 Interceptor 的名称注册。

add_server_request_interceptor

void add_server_request_interceptor(ServerRequestInterceptor interceptor)
                                    throws DuplicateName
此方法用来将服务器端的请求 Interceptor 添加到服务器端请求 Interceptor 列表。

参数:
interceptor - 要添加的 ServerRequestInterceptor。
抛出:
DuplicateName - 如果服务器端的请求 Interceptor 已经使用此 Interceptor 的名称注册。

add_ior_interceptor

void add_ior_interceptor(IORInterceptor interceptor)
                         throws DuplicateName
此方法用来将 IOR Interceptor 添加到 IOR Interceptor 列表。

参数:
interceptor - 要添加的 IORInterceptor。
抛出:
DuplicateName - 如果 IOR Interceptor 已经使用此 Interceptor 名称注册。

allocate_slot_id

int allocate_slot_id()
调用此方法来在 PortableInterceptor.Current 上分配槽 (slot)。

注意,可以在 ORB 初始化程序中分配槽的 id,但不能初始化槽本身。

返回:
已经分配的槽的索引。
抛出:
BAD_INV_ORDER - 如果在 ORB 初始化程序内对 PICurrent 调用 set_slotget_slot,则抛出此异常并带有标准次要代码 14。
另请参见:
Current

register_policy_factory

void register_policy_factory(int type,
                             PolicyFactory policy_factory)
注册给定 PolicyTypePolicyFactory

参数:
type - 给定 PolicyFactory 服务的策略类型。
policy_factory - 给定策略类型的工厂。
抛出:
BAD_INV_ORDER - 如果已经存在给定 PolicyTypePolicyFactory,则抛出此异常并带有标准次要代码 16。

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策