public interface ClientRequestInfoOperations extends RequestInfoOperations
对一些属性和操作ClientRequestInfo
是不是在所有的拦截点有效。 下表显示每个属性或操作的有效性。 如果它无效,尝试访问它将导致BAD_INV_ORDER
被抛出标准的次要代码14。
request_id
yes yes yes yes yesoperation
yes yes yes yes yesarguments
yes1 no yes no noexceptions
yes no yes yes yescontexts
yes no yes yes yesoperation_context
yes no yes yes yesresult
no no yes no noresponse_expected
yes yes yes yes yessync_scope
yes no yes yes yesreply_status
no no yes yes yesforward_reference
no no no no yes2get_slot
yes yes yes yes yesget_request_service_context
yes no yes yes yesget_reply_service_context
no no yes yes yes ClientRequestInfo-specific:target
yes yes yes yes yeseffective_target
yes yes yes yes yeseffective_profile
yes yes yes yes yesreceived_exception
no no no yes noreceived_exception_id
no no no yes noget_effective_component
yes no yes yes yesget_effective_components
yes no yes yes yesget_request_policy
yes no yes yes yesadd_request_service_context
yes no no no noClientRequestInfo
传递给send_request
时,每个参数的列表中都有一个条目,无论是在inout还是out中。 但是只有in和inout参数才可用。 reply_status
属性不是LOCATION_FORWARD
,则访问此属性将抛出BAD_INV_ORDER
,标准的次要代码为14。 ClientRequestInterceptor
Modifier and Type | Method and Description |
---|---|
void |
add_request_service_context(ServiceContext service_context, boolean replace)
允许拦截器向请求添加服务上下文。
|
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()
返回任何包含要返回给客户端的异常。
|
Object |
target()
返回客户端调用以执行操作的对象。
|
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
Object target()
effective_target()
Object effective_target()
reply_status
是LOCATION_FORWARD
,则在随后的请求中, effective_target
将包含转发的IOR,而目标将保持不变。
target()
TaggedProfile effective_profile()
Any received_exception()
如果异常是用户异常,不能插入任何(例如,未知或绑定不提供TypeCode
),则该属性将包含系统异常UNKNOWN
,其标准次要代码为1。然而,异常的存储库id处于可用received_exception_id
属性。
received_exception_id()
String received_exception_id()
TaggedComponent get_effective_component(int id)
IOP.TaggedComponent
。
如果给定的组件ID有多个组件,则该操作将返回哪个组件未定义。 如果给定组件ID有多个组件,则应调用get_effective_components
。
id
- 要返回的组件的组件ID。
IOP.TaggedComponent
获得的IOP.TaggedComponent。
BAD_PARAM
- 抛出,标准的次要代码为28,如果给定的组件ID没有组件。
get_effective_components(int)
TaggedComponent[] get_effective_components(int id)
id
- 要返回的组件的组件ID。
TaggedComponent
对象,每个对象包含给定的标识符。
BAD_PARAM
- 抛出,标准的次要代码为28,如果给定的组件ID不存在组件。
get_effective_component(int)
Policy get_request_policy(int type)
type
- 指定要返回的策略的策略类型。
CORBA.Policy
。
INV_POLICY
- 抛出,标准的次要代码为1,如果策略类型无效,因为此ORB不支持指定的类型,或者因为该类型的策略对象不与此对象关联
PortableInterceptor
package comments for limitations / unimplemented features
void add_request_service_context(ServiceContext service_context, boolean replace)
没有声明服务上下文的顺序。 他们可能会或不会按照添加的顺序出现。
service_context
- 要添加到请求的
IOP.ServiceContext
。
replace
- 表示当具有给定ID的服务上下文已存在时此操作的行为。
如果是false,那么BAD_INV_ORDER
与标准的小代码15被抛出。
如果为true,则现有服务上下文将被新的服务上下文替换。