org.omg.PortableServer

接口
异常
所有已知子接口:
POA

public interface POAOperations

POA 对象管理对象集合的实现。POA 支持由 Object Id 标识的对象的名称空间。POA 也支持 POA 的名称空间。POA 都是作为现有 POA 的子 POA 创建的,这形成了始于根 POA 的分层结构。POA 对象不得输出到其他进程,也不得使用 ORB::object_to_string 具体化。


方法摘要
 void activate_object_with_id(byte[] id, Servant p_servant)
          此操作将指定 Object Id 与指定 servant 之间的关联输入 Active Object Map。
 byte[] activate_object(Servant p_servant)
          此操作生成一个 Object Id,并将该 Object Id 和指定的 servant 输入 Active Object Map。
 IdAssignmentPolicy create_id_assignment_policy(IdAssignmentPolicyValue value)
          每个这类操作都返回一个对具有指定值的策略对象的引用。
 IdUniquenessPolicy create_id_uniqueness_policy(IdUniquenessPolicyValue value)
          每个这类操作都返回一个对具有指定值的策略对象的引用。
 ImplicitActivationPolicy create_implicit_activation_policy(ImplicitActivationPolicyValue value)
          每个这类操作都返回一个对具有指定值的策略对象的引用。
 LifespanPolicy create_lifespan_policy(LifespanPolicyValue value)
          每个这类操作都返回一个对具有指定值的策略对象的引用。
 POA create_POA(String adapter_name, POAManager a_POAManager, Policy[] policies)
          此操作创建一个新的 POA 作为目标 POA 的子 POA。
 Object create_reference_with_id(byte[] oid, String intf)
          此操作创建一个对象引用,该引用封装指定的 Object Id 和接口存储库 Id 值。
 Object create_reference(String intf)
          此操作创建一个对象引用,该引用封装 POA 生成的 Object Id 值和指定的接口存储库 id。
 RequestProcessingPolicy create_request_processing_policy(RequestProcessingPolicyValue value)
          每个这类操作都返回一个对具有指定值的策略对象的引用。
 ServantRetentionPolicy create_servant_retention_policy(ServantRetentionPolicyValue value)
          每个这类操作都返回一个对具有指定值的策略对象的引用。
 ThreadPolicy create_thread_policy(ThreadPolicyValue value)
          每个这种操作都返回一个对具有指定值的策略对象的引用。
 void deactivate_object(byte[] oid)
          此操作促使在 oid 参数中指定的 ObjectId 被取消激活。
 void destroy(boolean etherealize_objects, boolean wait_for_completion)
          此操作销毁 POA 及所有子代 POA。
 POA find_POA(String adapter_name, boolean activate_it)
          如果目标 POA 是具有指定名称的子 POA(相对于目标 POA)的父 POA,则返回该子 POA。
 ServantManager get_servant_manager()
          如果 POA 的 ServantRetentionPolicy 为 RETAIN,则 ServantManager 参数 (imgr) 应该支持 ServantActivator 接口。
 Servant get_servant()
          此操作返回与 POA 关联的默认 servant。
 Object id_to_reference(byte[] oid)
          如果具有指定 Object Id 值的对象当前不是激活状态,则返回一个封装激活该对象时所用信息的引用。
 Servant id_to_servant(byte[] oid)
          如果 POA 具有 RETAIN 策略并且指定的 ObjectId 存在于 Active Object Map 中,则此操作返回与 Active Object Map 中该对象关联的 servant。
 byte[] id()
          此操作在 POA 的创建过程中返回该 POA 的唯一 id。
 byte[] reference_to_id(Object reference)
          此操作返回指定引用封装的 Object Id 值。
 Servant reference_to_servant(Object reference)
          如果 POA 具有 RETAIN 策略并且指定的对象存在于 Active Object Map 中,则此操作返回与 Active Object Map 中该对象关联的 servant。
 byte[] servant_to_id(Servant p_servant)
          此操作有四种可能的行为。
 Object servant_to_reference(Servant p_servant)
          如果在此 POA 指派的操作的上下文外调用此操作,则需要 RETAIN 策略以及 UNIQUE_ID 或 IMPLICIT_ACTIVATION 策略之一。
 void set_servant_manager(ServantManager imgr)
          此操作设置与 POA 关联的默认 servant 管理器。
 void set_servant(Servant p_servant)
          此操作在 POA 中将指定的 servant 注册为默认 servant。
 AdapterActivator the_activator()
          此属性标识与 POA 关联的适配器激活器。
 void the_activator(AdapterActivator newThe_activator)
          此属性标识与 POA 关联的适配器激活器。
 POA[] the_children()
          此属性标识 POA 的所有子 POA 的当前设置。
 String the_name()
          此属性标识相对于其父 POA 的 POA。
 POA the_parent()
          此属性标识 POA 的父 POA。
 POAManager the_POAManager()
          此属性标识与 POA 关联的 POA 管理器。
 

方法详细信息

create_POA

POA create_POA(String adapter_name,
               POAManager a_POAManager,
               Policy[] policies)
               throws AdapterAlreadyExists,
                      InvalidPolicy
此操作创建一个新的 POA 作为目标 POA 的子 POA。

参数:
adapter_name - 标识新的 POA(就其他具有相同父 POA 的 POA 而言)。
a_POAManager - 指示与新 POA 关联的 POA 管理器。
policies - 指示与将与 POA 关联以控制其行为的策略对象。
抛出:
AdapterAlreadyExists - 指示目标 POA 已经有一个具有指定名称的子 POA。
InvalidPolicy - 策略对象中存在对 ORB 无效的策略、存在冲突,或要求未执行的管理动作时引发。

find_POA

POA find_POA(String adapter_name,
             boolean activate_it)
             throws AdapterNonExistent
如果目标 POA 是具有指定名称的子 POA(相对于目标 POA)的父 POA,则返回该子 POA。

参数:
adapter_name - 要查找的 POA 名称。
activate_it - 如果不存在具有指定名称的 POA,且 activate_it 参数的值为 TRUE,则将调用目标 POA 的 AdapterActivator(如果有)。
返回:
POA,如果有或由 AdapterActivator 激活。
抛出:
AdapterNonExistent

destroy

void destroy(boolean etherealize_objects,
             boolean wait_for_completion)
此操作销毁 POA 及所有子代 POA。在销毁包含子代的 POA 前销毁(以递归形式)所有子代 POA。以此方式销毁的 POA(即具有其名称的 POA)以后可通过相同的过程重新创建。

参数:
etherealize_objects - 指示是否需要对 servant 管理器调用 etherealize 操作的标记。
wait_for_completion - 一个标记,指示 POA 及其子 POA 是否需要等待激活的请求和 etherealization 操作完成。

create_thread_policy

ThreadPolicy create_thread_policy(ThreadPolicyValue value)
每个这种操作都返回一个对具有指定值的策略对象的引用。

参数:
value - 策略类型
返回:
ThreadPolcy 对象

create_lifespan_policy

LifespanPolicy create_lifespan_policy(LifespanPolicyValue value)
每个这类操作都返回一个对具有指定值的策略对象的引用。

参数:
value - 策略类型
返回:
LifespanPolicy 对象

create_id_uniqueness_policy

IdUniquenessPolicy create_id_uniqueness_policy(IdUniquenessPolicyValue value)
每个这类操作都返回一个对具有指定值的策略对象的引用。

参数:
value - 策略类型
返回:
IdUniquenessPolicy 对象

create_id_assignment_policy

IdAssignmentPolicy create_id_assignment_policy(IdAssignmentPolicyValue value)
每个这类操作都返回一个对具有指定值的策略对象的引用。

参数:
value - 策略类型
返回:
IdAssignmentPolicy 对象

create_implicit_activation_policy

ImplicitActivationPolicy create_implicit_activation_policy(ImplicitActivationPolicyValue value)
每个这类操作都返回一个对具有指定值的策略对象的引用。

参数:
value - 策略类型
返回:
ImplicitActivationPolicy 对象

create_servant_retention_policy

ServantRetentionPolicy create_servant_retention_policy(ServantRetentionPolicyValue value)
每个这类操作都返回一个对具有指定值的策略对象的引用。

参数:
value - 策略类型
返回:
ServantRetentionPolicy 对象

create_request_processing_policy

RequestProcessingPolicy create_request_processing_policy(RequestProcessingPolicyValue value)
每个这类操作都返回一个对具有指定值的策略对象的引用。

参数:
value - 策略类型
返回:
RequestProcessingPolicy 对象

the_name

String the_name()
此属性标识相对于其父 POA 的 POA。此名称在创建 POA 时分配。


the_parent

POA the_parent()
此属性标识 POA 的父 POA。根 POA 的父 POA 为 null。


the_children

POA[] the_children()
此属性标识 POA 的所有子 POA 的当前设置。子 POA 的设置只包括 POA 的直接子 POA,不包括其直接子 POA 的子代。


the_POAManager

POAManager the_POAManager()
此属性标识与 POA 关联的 POA 管理器。


the_activator

AdapterActivator the_activator()
此属性标识与 POA 关联的适配器激活器。


the_activator

void the_activator(AdapterActivator newThe_activator)
此属性标识与 POA 关联的适配器激活器。


get_servant_manager

ServantManager get_servant_manager()
                                   throws WrongPolicy
如果 POA 的 ServantRetentionPolicy 为 RETAIN,则 ServantManager 参数 (imgr) 应该支持 ServantActivator 接口。对于 NON_RETAIN 策略,ServantManager 应该支持 ServantLocator 接口。如果参数为 nil 或不支持所需接口,则引发 OBJ_ADAPTER 异常。

返回:
与 POA 关联的 ServantManager;如果不存在,则返回 null。
抛出:
WrongPolicy - 未指定 USE_SERVANT_MANAGER 策略时引发。

set_servant_manager

void set_servant_manager(ServantManager imgr)
                         throws WrongPolicy
此操作设置与 POA 关联的默认 servant 管理器。此操作只能在创建了 POA 后调用一次。试图在已经设置了 servant 管理器后再次设置将导致引发 BAD_INV_ORDER 异常。

参数:
imgr - 默认情况下使用的 servant 管理器。
抛出:
WrongPolicy - 未指定 USE_SERVANT_MANAGER 策略时引发。

get_servant

Servant get_servant()
                    throws NoServant,
                           WrongPolicy
此操作返回与 POA 关联的默认 servant。

返回:
p_servant 与 POA 关联的默认 servant。
抛出:
NoServant - 没有与 POA 关联的默认 servant 时引发。
WrongPolicy - 未指定 USE_DEFAULT_SERVANT 策略时引发。

set_servant

void set_servant(Servant p_servant)
                 throws WrongPolicy
此操作在 POA 中将指定的 servant 注册为默认 servant。此 servant 将用于所有在 Active Object Map 中没有对应 servant 的请求。

参数:
p_servant - 默认情况下使用的 servant。
抛出:
WrongPolicy - 未指定 USE_DEFAULT_SERVANT 策略时引发。

activate_object

byte[] activate_object(Servant p_servant)
                       throws ServantAlreadyActive,
                              WrongPolicy
此操作生成一个 Object Id,并将该 Object Id 和指定的 servant 输入 Active Object Map。

参数:
p_servant - 要与将被激活的对象关联的 servant。
返回:
生成对象 id 的 POA。
抛出:
ServantAlreadyActive - 在 POA 具有 UNIQUE_ID 策略且 servant 已经存在于 Active Object Map 时引发。
WrongPolicy - 未指定 SYSTEM_ID 和 RETAIN 策略时引发。

activate_object_with_id

void activate_object_with_id(byte[] id,
                             Servant p_servant)
                             throws ServantAlreadyActive,
                                    ObjectAlreadyActive,
                                    WrongPolicy
此操作将指定 Object Id 与指定 servant 之间的关联输入 Active Object Map。

参数:
id - 将被激活的对象的对象 id。
p_servant - 将关联对象的 servant。
抛出:
ServantAlreadyActive - 在 POA 具有 UNIQUE_ID 策略且 servant 已经存在于 Active Object Map 时引发。
ObjectAlreadyActive - 对象已经在 POA 中激活时引发。
WrongPolicy - 未指定 RETAIN 策略时引发。

deactivate_object

void deactivate_object(byte[] oid)
                       throws ObjectNotActive,
                              WrongPolicy
此操作促使在 oid 参数中指定的 ObjectId 被取消激活。只要已取消激活的 ObjectId 中还存在激活的请求,该 ObjectId 将继续处理请求。当为停用的 ObjectId 执行的所有请求全部完成后,将从 Active Object Map 中移除该 ObjectId。

参数:
oid - 将被停用的对象的 Object Id。
抛出:
ObjectNotActive - 如果具有指定 oid 的对象不在 Active Object Map 中。
WrongPolicy - 未指定 RETAIN 策略时引发。

create_reference

Object create_reference(String intf)
                        throws WrongPolicy
此操作创建一个对象引用,该引用封装 POA 生成的 Object Id 值和指定的接口存储库 id。

参数:
intf - 用来创建对象引用的 rep id。
返回:
使用 intf 创建的对象引用。
抛出:
WrongPolicy - 如果未指定 SYSTEM_ID 策略。

create_reference_with_id

Object create_reference_with_id(byte[] oid,
                                String intf)
此操作创建一个对象引用,该引用封装指定的 Object Id 和接口存储库 Id 值。该操作不会导致发生激活。所得引用可以传递给客户端,从而后续对这些引用的请求将导致在必要时可激活对象,或者使用默认的 servant,具体取决于适用的策略。

参数:
oid - 用来创建 objref 的对象 id
intf - 用来创建 objref 的 rep id
返回:
使用 oid 和 intf 创建的对象引用
抛出:
BAD_PARAM - 如果 POA 具有 SYSTEM_ID 策略且它检测到系统或 POA 没有生成 Object Id 值。

servant_to_id

byte[] servant_to_id(Servant p_servant)
                     throws ServantNotActive,
                            WrongPolicy
此操作有四种可能的行为。1. 如果 POA 具有 UNIQUE_ID 策略且指定的 servant 已激活,则返回与该 servant 关联的 Object Id。2. 如果 POA 具有 IMPLICIT_ACTIVATION 策略,并且 POA 具有 MULTIPLE_ID 策略或者指定的 servant 未激活,则使用 POA 生成的 Object Id 和与该 servant 关联的 Interface Id 激活 servant,并返回该 Object Id。3. 如果 POA 具有 USE_DEFAULT_SERVANT 策略,指定的 servant 为默认 servant,并将在执行请求的上下文中对默认 servant 调用该操作,则将返回关联当前调用的 ObjectId。4. 其他情况下引发 ServantNotActive 异常。

参数:
p_servant - 为其返回对象 disi 的 servant。
返回:
与 servant 关联的对象 id。
抛出:
ServantNotActive - 如果不满足上述规则和策略组合。
WrongPolicy - 如果 USE_DEFAULT_SERVANT 策略或 RETAIN 策略的组合以及 UNIQUE_ID 或 IMPLICIT_ACTIVATION 策略不存在。

servant_to_reference

Object servant_to_reference(Servant p_servant)
                            throws ServantNotActive,
                                   WrongPolicy
如果在此 POA 指派的操作的上下文外调用此操作,则需要 RETAIN 策略以及 UNIQUE_ID 或 IMPLICIT_ACTIVATION 策略之一。它具有四种可能的行为。1. 如果 POA 同时具有 RETAIN 和 UNIQUE_ID 策略,且指定的 servant 是激活的,则返回一个封装激活 servant 时所用信息的对象引用。2. 如果 POA 同时具有 RETAIN 和 IMPLICIT_ACTIVATION 策略,并且 POA 具有 MULTIPLE_ID 策略或者指定的 servant 未激活,则使用 POA 生成的 Object Id 和与该 servant 关联的 Interface Id 激活 servant,并返回响应的对象引用。3. 如果该操作在执行请求的上下文中对指定的 servant 调用,则返回关联当前调用的引用。4. 其他情况下引发 ServantNotActive 异常。

参数:
p_servant - 需要为其获取对象引用的 servant。
返回:
与 servant 关联的对象引用。
抛出:
WrongPolicy - 如果操作不是在对指定 servant 执行请求的上下文中调用的,且所需的策略不存在。
ServantNotActive - 如果不满足上述指定策略和规则。

reference_to_servant

Servant reference_to_servant(Object reference)
                             throws ObjectNotActive,
                                    WrongPolicy,
                                    WrongAdapter
如果 POA 具有 RETAIN 策略并且指定的对象存在于 Active Object Map 中,则此操作返回与 Active Object Map 中该对象关联的 servant。如果 POA 具有 USE_DEFAULT_SERVANT 策略并且已经向 POA 注册了默认 servant,则此操作返回该默认 servant。如果此 POA 没有创建对象引用,则引发 WrongAdapter 异常。(与 POA.IDL 不一致的 OMG 问题。)

参数:
reference - 为其返回 servant 的对象引用。
返回:
与引用关联的 servant。
抛出:
WrongPolicy - 如果 RETAIN 策略或 USE_DEFAULT_SERVANT 策略都不存在。
ObjectNotActive - 如果 servant 不存在于 Active Object Map 中(对于 RETAIN)或者没有注册默认 servant(对于 USE_DEFAULT_POLICY)。
WrongAdapter - 如果此 POA 实例没有创建引用。

reference_to_id

byte[] reference_to_id(Object reference)
                       throws WrongAdapter,
                              WrongPolicy
此操作返回指定引用封装的 Object Id 值。仅在引用是由将执行此操作的 POA 所创建的情况下,此操作才有效。引用表示的对象不是激活状态时此操作也能成功。

参数:
reference - 对象引用,需要根据该引用返回对象 id。
返回:
引用中封装的对象 id。
抛出:
WrongAdapter - 如果引用不是由引用中指定的 POA 创建的。
WrongPolicy - 先声明,以用于以后扩展。

id_to_servant

Servant id_to_servant(byte[] oid)
                      throws ObjectNotActive,
                             WrongPolicy
如果 POA 具有 RETAIN 策略并且指定的 ObjectId 存在于 Active Object Map 中,则此操作返回与 Active Object Map 中该对象关联的 servant。如果 POA 具有 USE_DEFAULT_SERVANT 策略并且已经向 POA 注册了默认 servant,则此操作返回该默认 servant。

参数:
oid - 为其返回 servant 的对象 id。
返回:
与 oid 关联的 servant。
抛出:
ObjectNotActive - 如果 ObjectId 不存在于 Active Object Map 中(对于 RETAIN 策略),或者没有注册默认 servant(对于 USE_DEFAULT_SERVANT 策略)。
WrongPolicy - 如果 RETAIN 策略或 USE_DEFAULT_SERVANT 策略不存在,则引发该异常。

id_to_reference

Object id_to_reference(byte[] oid)
                       throws ObjectNotActive,
                              WrongPolicy
如果具有指定 Object Id 值的对象当前不是激活状态,则返回一个封装激活该对象时所用信息的引用。

参数:
oid - 为其返回引用的对象 id。
返回:
对象引用。
抛出:
ObjectNotActive - 如果 POA 中的 Object Id 值未激活。
WrongPolicy - 如果不存在 RETAIN 策略。

id

byte[] id()
此操作在 POA 的创建过程中返回该 POA 的唯一 id。该值由可移植的 interceptor 使用。

此 id 在 POA 处理过程中的生命周期内保证是唯一的。对于持久 POA,这意味着如果在同一路径使用与另一个 POA 相同的名称创建一个 POA,则这两个 POA 是等同的,也因此具有相同的 id。对于瞬态 POA,每个 POA 均唯一。