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 管理器。 |
方法详细信息 |
---|
POA create_POA(String adapter_name, POAManager a_POAManager, Policy[] policies) throws AdapterAlreadyExists, InvalidPolicy
adapter_name
- 标识新的 POA(就其他具有相同父 POA 的 POA 而言)。
a_POAManager
- 指示与新 POA 关联的 POA 管理器。
policies
- 指示与将与 POA 关联以控制其行为的策略对象。
AdapterAlreadyExists
- 指示目标 POA 已经有一个具有指定名称的子 POA。
InvalidPolicy
- 策略对象中存在对 ORB 无效的策略、存在冲突,或要求未执行的管理动作时引发。
POA find_POA(String adapter_name, boolean activate_it) throws AdapterNonExistent
adapter_name
- 要查找的 POA 名称。
activate_it
- 如果不存在具有指定名称的 POA,且 activate_it 参数的值为 TRUE,则将调用目标 POA 的 AdapterActivator(如果有)。
AdapterNonExistent
void destroy(boolean etherealize_objects, boolean wait_for_completion)
etherealize_objects
- 指示是否需要对 servant 管理器调用 etherealize 操作的标记。
wait_for_completion
- 一个标记,指示 POA 及其子 POA 是否需要等待激活的请求和 etherealization 操作完成。
ThreadPolicy create_thread_policy(ThreadPolicyValue value)
value
- 策略类型
LifespanPolicy create_lifespan_policy(LifespanPolicyValue value)
value
- 策略类型
IdUniquenessPolicy create_id_uniqueness_policy(IdUniquenessPolicyValue value)
value
- 策略类型
IdAssignmentPolicy create_id_assignment_policy(IdAssignmentPolicyValue value)
value
- 策略类型
ImplicitActivationPolicy create_implicit_activation_policy(ImplicitActivationPolicyValue value)
value
- 策略类型
ServantRetentionPolicy create_servant_retention_policy(ServantRetentionPolicyValue value)
value
- 策略类型
RequestProcessingPolicy create_request_processing_policy(RequestProcessingPolicyValue value)
value
- 策略类型
String the_name()
POA the_parent()
POA[] the_children()
POAManager the_POAManager()
AdapterActivator the_activator()
void the_activator(AdapterActivator newThe_activator)
ServantManager get_servant_manager() throws WrongPolicy
WrongPolicy
- 未指定 USE_SERVANT_MANAGER 策略时引发。
void set_servant_manager(ServantManager imgr) throws WrongPolicy
imgr
- 默认情况下使用的 servant 管理器。
WrongPolicy
- 未指定 USE_SERVANT_MANAGER 策略时引发。
Servant get_servant() throws NoServant, WrongPolicy
NoServant
- 没有与 POA 关联的默认 servant 时引发。
WrongPolicy
- 未指定 USE_DEFAULT_SERVANT 策略时引发。
void set_servant(Servant p_servant) throws WrongPolicy
p_servant
- 默认情况下使用的 servant。
WrongPolicy
- 未指定 USE_DEFAULT_SERVANT 策略时引发。
byte[] activate_object(Servant p_servant) throws ServantAlreadyActive, WrongPolicy
p_servant
- 要与将被激活的对象关联的 servant。
ServantAlreadyActive
- 在 POA 具有 UNIQUE_ID 策略且 servant 已经存在于 Active Object Map 时引发。
WrongPolicy
- 未指定 SYSTEM_ID 和 RETAIN 策略时引发。
void activate_object_with_id(byte[] id, Servant p_servant) throws ServantAlreadyActive, ObjectAlreadyActive, WrongPolicy
id
- 将被激活的对象的对象 id。
p_servant
- 将关联对象的 servant。
ServantAlreadyActive
- 在 POA 具有 UNIQUE_ID 策略且 servant 已经存在于 Active Object Map 时引发。
ObjectAlreadyActive
- 对象已经在 POA 中激活时引发。
WrongPolicy
- 未指定 RETAIN 策略时引发。
void deactivate_object(byte[] oid) throws ObjectNotActive, WrongPolicy
oid
- 将被停用的对象的 Object Id。
ObjectNotActive
- 如果具有指定 oid 的对象不在 Active Object Map 中。
WrongPolicy
- 未指定 RETAIN 策略时引发。
Object create_reference(String intf) throws WrongPolicy
intf
- 用来创建对象引用的 rep id。
WrongPolicy
- 如果未指定 SYSTEM_ID 策略。
Object create_reference_with_id(byte[] oid, String intf)
oid
- 用来创建 objref 的对象 id
intf
- 用来创建 objref 的 rep id
BAD_PARAM
- 如果 POA 具有 SYSTEM_ID 策略且它检测到系统或 POA 没有生成 Object Id 值。
byte[] servant_to_id(Servant p_servant) throws ServantNotActive, WrongPolicy
p_servant
- 为其返回对象 disi 的 servant。
ServantNotActive
- 如果不满足上述规则和策略组合。
WrongPolicy
- 如果 USE_DEFAULT_SERVANT 策略或 RETAIN 策略的组合以及 UNIQUE_ID 或 IMPLICIT_ACTIVATION 策略不存在。
Object servant_to_reference(Servant p_servant) throws ServantNotActive, WrongPolicy
p_servant
- 需要为其获取对象引用的 servant。
WrongPolicy
- 如果操作不是在对指定 servant 执行请求的上下文中调用的,且所需的策略不存在。
ServantNotActive
- 如果不满足上述指定策略和规则。
Servant reference_to_servant(Object reference) throws ObjectNotActive, WrongPolicy, WrongAdapter
reference
- 为其返回 servant 的对象引用。
WrongPolicy
- 如果 RETAIN 策略或 USE_DEFAULT_SERVANT 策略都不存在。
ObjectNotActive
- 如果 servant 不存在于 Active Object Map 中(对于 RETAIN)或者没有注册默认 servant(对于 USE_DEFAULT_POLICY)。
WrongAdapter
- 如果此 POA 实例没有创建引用。
byte[] reference_to_id(Object reference) throws WrongAdapter, WrongPolicy
reference
- 对象引用,需要根据该引用返回对象 id。
WrongAdapter
- 如果引用不是由引用中指定的 POA 创建的。
WrongPolicy
- 先声明,以用于以后扩展。
Servant id_to_servant(byte[] oid) throws ObjectNotActive, WrongPolicy
oid
- 为其返回 servant 的对象 id。
ObjectNotActive
- 如果 ObjectId 不存在于 Active Object Map 中(对于 RETAIN 策略),或者没有注册默认 servant(对于 USE_DEFAULT_SERVANT 策略)。
WrongPolicy
- 如果 RETAIN 策略或 USE_DEFAULT_SERVANT 策略不存在,则引发该异常。
Object id_to_reference(byte[] oid) throws ObjectNotActive, WrongPolicy
oid
- 为其返回引用的对象 id。
ObjectNotActive
- 如果 POA 中的 Object Id 值未激活。
WrongPolicy
- 如果不存在 RETAIN 策略。
byte[] id()
此 id 在 POA 处理过程中的生命周期内保证是唯一的。对于持久 POA,这意味着如果在同一路径使用与另一个 POA 相同的名称创建一个 POA,则这两个 POA 是等同的,也因此具有相同的 id。对于瞬态 POA,每个 POA 均唯一。