public interface RequestInfoOperations
Interceptor 可访问的请求信息。
 每个截取点都给定了一个对象,Interceptor 可以通过该对象访问请求信息。客户端和服务器端的截取点关注不同的信息,因此有两种信息对象:ClientRequestInfo 传递给客户端的截取点,ServerRequestInfo 传递给服务器端的截取点。但也有两者都需要的信息,所以这两个接口继承自同一个接口:RequestInfo。 
| 方法摘要 | |
|---|---|
  Parameter[] |  
     arguments() 返回一个 Parameter 对象数组,包含将调用的操作上的参数。 |  
    
  String[] |  
     contexts() 返回一个 String 对象数组,这些对象描述可以在此操作调用上传递的上下文。 |  
    
  TypeCode[] |  
     exceptions() 返回一个 TypeCode 对象数组,这些对象描述此操作调用可能抛出的用户异常的 TypeCode。 |  
    
  Object |  
     forward_reference() 如果 reply_status 属性为 LOCATION_FORWARD,则包含要将请求转发到的对象。 |  
    
  ServiceContext |  
     get_reply_service_context(int id) 返回具有给定 ID 的与应答关联的服务上下文复本。  |  
    
  ServiceContext |  
     get_request_service_context(int id) 返回具有给定 ID 的与请求关联的服务上下文复本。  |  
    
  Any |  
     get_slot(int id) 返回请求域内 PortableInterceptor.Current 给定槽 (slot) 中的数据。 |  
    
  String[] |  
     operation_context() 返回一个 String 对象数组,这些对象包含将在请求上发送上下文。 |  
    
  String |  
     operation() 返回将被调用的操作的名称。  |  
    
  short |  
     reply_status() 描述操作调用结果的状态。  |  
    
  int |  
     request_id() 返回唯一地标识激活的请求/应答序列的 id。  |  
    
  boolean |  
     response_expected() 指示是否希望响应。  |  
    
  Any |  
     result() 返回一个 any,它包含该操作调用的结果。  |  
    
  short |  
     sync_scope() 定义在控制信息返回到客户端前请求应前进的距离。  |  
    
| 方法详细信息 | 
|---|
int request_id()
request_id。如果使用的传送机制是 GIOP,则这些 ID 很可能是相同的,但是不保证也不要求如此。 
    
String operation()
Parameter[] arguments()
Parameter 对象数组,包含将调用的操作上的参数。如果没有参数,则此属性将是一个 0 长度数组。 
     并非所有环境都提供对参数的访问。例如,使用 Java 可移植绑定时参数将不可用。在这些环境中访问此属性时,将抛出 NO_RESOURCES,并带有标准次要代码 1。 
注:对于 DSI/DII 调用参数是可用的。
NO_RESOURCES - 如果参数不可用。
     PortableInterceptor 包中关于限制/未实现特性的注释
     TypeCode[] exceptions()
TypeCode 对象数组,这些对象描述此操作调用可能抛出的用户异常的 
    TypeCode。如果没有用户异常,则此方法返回一个长度为 0 的数组。 
     并非所有环境都提供对异常列表的访问。例如,使用 Java 可移植绑定时异常列表将不可用。在这些环境中访问此属性时,将抛出 NO_RESOURCES,并带有标准次要代码 1。 
注:异常对于 DSI/DII 调用是可用的。
NO_RESOURCES - 如果异常不可用。
     PortableInterceptor 包中关于限制/未实现特性的注释
     String[] contexts()
String 对象数组,这些对象描述可以在此操作调用上传递的上下文。如果没有上下文,则此方法返回一个长度为 0 的数组。 
     并非所有环境都提供对上下文列表的访问。例如,使用 Java 可移植绑定时上下文列表将不可用。在这些环境中访问此属性时,将抛出 NO_RESOURCES,并带有标准次要代码 1。 
注:上下文对于 DSI/DII 调用是可用的。
NO_RESOURCES - 如果上下文不可用。
     PortableInterceptor 包中关于限制/未实现特性的注释
     String[] operation_context()
String 对象数组,这些对象包含将在请求上发送上下文。 
    并非所有环境都提供对上下文的访问。例如,使用 Java 可移植绑定时上下文将不可用。在这些环境中访问此属性时,将抛出 NO_RESOURCES,并带有标准次代码 1。
 注:operation_context 对于 DSI/DII 调用是可用的。 
NO_RESOURCES - 如果操作上下文不可用。
     PortableInterceptor 包中关于限制/未实现特性的注释
     Any result()
TCKind 值为 
    tk_void 的类型代码的 any,并且该 any 不包含任何值。 
     并非所有环境都提供对结果的访问。例如,使用 Java 可移植绑定时结果将不可用。在这些环境中访问此属性时,将抛出 NO_RESOURCES,并带有标准次要代码 1。 
注:结果对于 DSI/DII 调用是可用的。
NO_RESOURCES - 如果结果不可用。
     PortableInterceptor 包中关于限制/未实现特性的注释
     boolean response_expected()
 对于客户端,当 response_expected 为 false 时不返回应答,因此不能调用 receive_reply。不发生异常时调用 receive_other,发生异常时调用 receive_exception。 
 此属性在客户端 send_poll 内部为 true。 
short sync_scope()
response_expected 为 false 时才相关。如果 
    response_expected 为 true,则 
    sync_scope 的值是不确定的。此属性可以是以下值之一: 
    Messaging.SYNC_NONEMessaging.SYNC_WITH_TRANSPORTMessaging.SYNC_WITH_SERVERMessaging.SYNC_WITH_TARGETreceive_request_service_contexts、
    receive_request、
    send_reply 或 
    send_exception)。 
     对于 SYNC_WITH_SERVER 和 SYNC_WITH_TARGET,在调用目标前,服务器将一个空应答发送回客户端。此应答将不会被服务器端的 Interceptor 截取。 
short reply_status()
PortableInterceptor.SUCCESSFULPortableInterceptor.SYSTEM_EXCEPTIONPortableInterceptor.USER_EXCEPTIONPortableInterceptor.LOCATION_FORWARDPortableInterceptor.TRANSPORT_RETRYreceive_reply 截取点内,此方法仅返回 SUCCESSFULreceive_exception 截取点内,此方法将返回 SYSTEM_EXCEPTION 或 USER_EXCEPTION。receive_other 截取点内,此方法将返回以下任意值:SUCCESSFUL、LOCATION_FORWARD 或 TRANSPORT_RETRY。SUCCESSFUL 表示成功返回了异步请求。LOCATION_FORWARD 表示返回了应答,并以 LOCATION_FORWARD 作为其状态。TRANSPORT_RETRY 表示传送机制指示重试 - 例如,带有 NEEDS_ADDRESSING_MODE 状态的 GIOP 应答。 send_reply 截取点内,此方法仅返回 SUCCESSFULsend_exception 截取点内,此方法将返回 SYSTEM_EXCEPTION 或 USER_EXCEPTION。send_other 截取点内,此属性将是以下任意值:SUCCESSFUL 或 LOCATION_FORWARD。SUCCESSFUL 表示成功返回了异步请求。LOCATION_FORWARD 表示返回了应答,并以 LOCATION_FORWARD 作为其状态。
Object forward_reference()
reply_status 属性为 
    LOCATION_FORWARD,则包含要将请求转发到的对象。转发的请求是否将实际发生是不确定的。 
    
Any get_slot(int id) throws InvalidSlot
PortableInterceptor.Current 给定槽 (slot) 中的数据。 
     如果尚未设置给定槽,则返回一个包含 TCKind 值为 tk_null 的类型代码的 any。 
id - 将返回的槽的 
      SlotId。 
     InvalidSlot - 如果 ID 定义的不是已分配的槽,则抛出此异常。
     Current
     ServiceContext get_request_service_context(int id)
id - 将返回的服务上下文的 
      IOP.ServiceId。 
     IOP.ServiceContext。 
     BAD_PARAM - 如果请求的服务上下文不包含对应于该 ID 的条目,则抛出此异常,并带有标准次代码 26。
     ServiceContext get_reply_service_context(int id)
id - 将返回的服务上下文的 
      IOP.ServiceId。 
     IOP.ServiceContext。 
     BAD_PARAM - 如果请求的服务上下文不包含对应于该 ID 的条目,则抛出此异常,并带有标准次要代码 26。