org.omg.PortableInterceptor

接口
异常
所有超级接口:
RequestInfoOperations
所有已知子接口:
ClientRequestInfo

public interface ClientRequestInfoOperations
     
extends RequestInfoOperations

客户端请求 interceptor 可访问的请求信息。

ClientRequestInfo 上的某些属性和操作并不是对所有的截取点都有效。下表展示了每个属性或操作的有效性。如果无效,则试图访问它将导致抛出 BAD_INV_ORDER,并带有标准次要代码 14。

  send_request send_poll receive_reply receive_exception receive_other
继承自 RequestInfo:

request_id

operation

arguments

1

exceptions

contexts

operation_context

result

response_expected

sync_scope

reply_status

forward_reference

2

get_slot

get_request_service_context

get_reply_service_context

特定于 ClientRequestInfo:

target

effective_target

effective_profile

received_exception

received_exception_id

get_effective_component

get_effective_components

get_request_policy

add_request_service_context

  1. ClientRequestInfo 传递给 send_request 时,对于每个参数(无论它是 in、inout 还是 out),列表中都有一个对应的条目。但只有 in 和 inout 参数可用。
  2. 如果 reply_status 属性不是 LOCATION_FORWARD,则访问此属性将抛出 BAD_INV_ORDER,并带有标准次要代码 14。

另请参见:
ClientRequestInterceptor

方法摘要
 void add_request_service_context(ServiceContext service_context, boolean replace)
          允许 Interceptor 将服务上下文添加到请求。
 TaggedProfile effective_profile()
          返回将用来发送请求的配置文件。
 Object effective_target()
          返回实际调用操作的对象。
 TaggedComponent get_effective_component(int id)
          返回为此请求选择的配置文件中带有给定 ID 的 IOP.TaggedComponent
 TaggedComponent[] get_effective_components(int id)
          返回为此请求选择的配置文件中具有给定 ID 的带标记组件所组成的数组。
 Policy get_request_policy(int type)
          返回此操作实行的给定策略。
 String received_exception_id()
          返回将向客户端返回的异常的存储库 id。
 Any received_exception()
          返回一个 any,它包含要向客户端返回的异常。
 Object target()
          返回客户端调用以执行操作的对象。
 
从接口 org.omg.PortableInterceptor.RequestInfoOperations 继承的方法
arguments, contexts, exceptions, forward_reference, get_reply_service_context, get_request_service_context, get_slot, operation_context, operation, reply_status, request_id, response_expected, result, sync_scope
 

方法详细信息

target

Object target()
返回客户端调用以执行操作的对象。

另请参见:
effective_target()

effective_target

Object effective_target()
返回实际调用操作的对象。如果 reply_statusLOCATION_FORWARD,则后续请求中 effective_target 将包含转发的 IOR,而目标保持不变。

另请参见:
target()

effective_profile

TaggedProfile effective_profile()
返回将用来发送请求的配置文件。如果此操作的对象发生了位置转发,并且该对象的配置文件因此而发生了更改,则此配置文件即为用来定位的配置文件。


received_exception

Any received_exception()
返回一个 any,它包含要向客户端返回的异常。

如果异常是不能插入 any 的用户异常(例如,该异常是未知的或绑定不提供 TypeCode),则此属性将是一个包含系统异常 UNKNOWN 并带有标准次要代码 (minor code) 1 的 any。但是,异常的存储库 id 在 received_exception_id 属性中可用。

另请参见:
received_exception_id()

received_exception_id

String received_exception_id()
返回将向客户端返回的异常的存储库 id。

另请参见:
received_exception(), PortableInterceptor 包中关于限制/未实现特性的注释

get_effective_component

TaggedComponent get_effective_component(int id)
返回为此请求选择的配置文件中带有给定 ID 的 IOP.TaggedComponent

如果给定的组件 ID 对应多个组件,则此操作返回哪个组件是不确定的。如果给定的组件 ID 对应于多个组件,则应调用 get_effective_components

参数:
id - 将返回的组件的组件 id。
返回:
通过给定标识符获取的 IOP.TaggedComponent
抛出:
BAD_PARAM - 如果不存在对应于给定组件 ID 的组件,则抛出此异常,并带有标准次代码 28。
另请参见:
get_effective_components(int)

get_effective_components

TaggedComponent[] get_effective_components(int id)
返回为此请求选择的配置文件中具有给定 ID 的带标记组件所组成的数组。

参数:
id - 将返回的组件的组件 id。
返回:
TaggedComponent 对象的数组,每个对象都包含给定标识符。
抛出:
BAD_PARAM - 如果不存在对应于给定组件 ID 的组件,则抛出此异常,并带有标准次代码 28。
另请参见:
get_effective_component(int)

get_request_policy

Policy get_request_policy(int type)
返回此操作实行的给定策略。

参数:
type - 指定将返回策略的策略类型。
返回:
通过给定类型获取的 CORBA.Policy
抛出:
INV_POLICY - 如果策略类型因为此 ORB 不支持指定类型或该类型的策略对象不与此 Object 关联而无效,则抛出此异常,并带有标准次代码 1。
另请参见:
PortableInterceptor 包中关于限制/未实现特性的注释

add_request_service_context

void add_request_service_context(ServiceContext service_context,
                                 boolean replace)
允许 Interceptor 将服务上下文添加到请求。

没有对服务上下文的顺序做出任何声明。它们可能按添加的顺序出现,也可能不是如此。

参数:
service_context - 将添加到请求的 IOP.ServiceContext
replace - 在已经存在具有给定 ID 的服务上下文时指示此操作的行为。如果为 false,则抛出 BAD_INV_ORDER,并带有标准次要代码 15。如果为 true,则用新服务上下文取代现有的服务上下文。