org.omg.CORBA

接口
异常
java.lang.Object
  继承者 org.omg.CORBA.Request

public abstract class Request
     
extends Object

包含调用某一方法所必需的信息的对象。此类是 ORB 动态调用接口(Dynamic Invocation Interface,DII)的基石,它允许动态创建并调用请求。服务器无法判断使用客户端 stub 的客户端调用与使用 DII 的请求之间的不同。

Request 对象由以下内容组成:

  • 将被调用的操作的名称
  • 包含用于该操作的参数的 NVList
    该列表中的每一项都是一个 NamedValue 对象,它由三部分组成:
    1. 参数的名称
    2. 参数值(以 Any 对象的形式存在)
    3. 指示该参数是用于输入、输出,还是同时用于这二者的参数模式标志

Request 对象还可以包含附加信息,这取决于原始 IDL 接口定义中对操作的定义。例如,在合适的地方可以包含一个 NamedValue 对象来保存返回值、异常、上下文、可能异常的列表和需要解析的上下文字符串列表。

新的 Request 对象是使用 Object 类中的 create_request 方法之一创建的。换句话说,create_request 方法是在将被调用的对象上执行的。

另请参见:
NamedValue

构造方法摘要
Request()
           
 
方法摘要
abstract  Any add_in_arg()
          创建一个输入参数,并将它添加到此 Request 对象中。
abstract  Any add_inout_arg()
          将一个输入/输出参数添加到此 Request 对象中。
abstract  Any add_named_in_arg(String name)
          使用给定名称创建一个输入参数,并将它添加到此 Request 对象中。
abstract  Any add_named_inout_arg(String name)
          将具有给定名称的输入/输出参数添加到此 Request 对象中。
abstract  Any add_named_out_arg(String name)
          将具有给定名称的输出参数添加到此 Request 对象中。
abstract  Any add_out_arg()
          将输出参数添加到此 Request 对象中。
abstract  NVList arguments()
          检索包含将被调用方法的参数的 NVList 对象。
abstract  ContextList contexts()
          检索用于此请求的 ContextList 对象。
abstract  Context ctx()
          检索用于此请求的 Context 对象。
abstract  void ctx(Context c)
          将此请求的 Context 对象设置为给定对象。
abstract  Environment env()
          检索用于此请求的 Environment 对象。
abstract  ExceptionList exceptions()
          检索用于此请求的 ExceptionList 对象。
abstract  void get_response()
          允许用户访问之前使用 send_deferred 方法所触发调用的响应。
abstract  void invoke()
          使用 Request 对象中的信息进行同步调用。
abstract  String operation()
          检索将被调用的方法的名称。
abstract  boolean poll_response()
          允许用户确定是否已接收到之前使用 send_deferred 方法所触发调用的响应。
abstract  NamedValue result()
          检索包含该方法的返回值的 NamedValue 对象。
abstract  Any return_value()
          返回包含方法结果值的 Any 对象。
abstract  void send_deferred()
          对请求进行异步调用。
abstract  void send_oneway()
          在请求上执行单向调用。
abstract  void set_return_type(TypeCode tc)
          设置该方法返回值的 typecode。
abstract  Object target()
          检索目标对象引用。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Request

public Request()
方法详细信息

target

public abstract Object target()
检索目标对象引用。

返回:
对象引用,指向将被调用的方法的对象实现

operation

public abstract String operation()
检索将被调用的方法的名称。

返回:
将被调用的方法的名称

arguments

public abstract NVList arguments()
检索包含将被调用方法的参数的 NVList 对象。列表中的元素都是 NamedValue 对象,每个元素描述该方法的一个参数。

返回:
包含该方法的参数的 NVList 对象

result

public abstract NamedValue result()
检索包含该方法的返回值的 NamedValue 对象。

返回:
包含该方法的结果的 NamedValue 对象

env

public abstract Environment env()
检索用于此请求的 Environment 对象。它包含被调用的方法所抛出的异常(在调用返回之后)。

返回:
用于此请求的 Environment 对象

exceptions

public abstract ExceptionList exceptions()
检索用于此请求的 ExceptionList 对象。此列表包含 TypeCode 对象,这些对象描述将被调用的方法可能抛出的异常。

返回:
ExceptionList 对象,该对象描述将被调用的方法可能抛出的异常

contexts

public abstract ContextList contexts()
检索用于此请求的 ContextList 对象。此列表包含需要解析并随调用发送的上下文 String

返回:
其值需要解析并随调用发送的上下文字符串所组成的列表。

ctx

public abstract Context ctx()
检索用于此请求的 Context 对象。这是一个属性列表,提供有关客户端、环境或此请求的情况的信息。

返回:
Context 对象,将使用该对象来解析任何其值需要与调用一起发送的上下文字符串

ctx

public abstract void ctx(Context c)
将此请求的 Context 对象设置为给定对象。

参数:
c - 将用来解析上下文字符串的新 Context 对象

add_in_arg

public abstract Any add_in_arg()
创建一个输入参数,并将它添加到此 Request 对象中。

返回:
一个 Any 对象,它包含所添加输入参数的值和 typecode

add_named_in_arg

public abstract Any add_named_in_arg(String name)
使用给定名称创建一个输入参数,并将它添加到此 Request 对象中。

参数:
name - 将添加的参数的名称
返回:
一个 Any 对象,它包含所添加输入参数的值和 typecode

add_inout_arg

public abstract Any add_inout_arg()
将一个输入/输出参数添加到此 Request 对象中。

返回:
一个 Any 对象,它包含所添加输入/输出参数的值和 typecode

add_named_inout_arg

public abstract Any add_named_inout_arg(String name)
将具有给定名称的输入/输出参数添加到此 Request 对象中。

参数:
name - 将添加的参数的名称
返回:
一个 Any 对象,它包含所添加输入/输出参数的值和 typecode

add_out_arg

public abstract Any add_out_arg()
将输出参数添加到此 Request 对象中。

返回:
一个 Any 对象,它包含所添加输出参数的值和 typecode

add_named_out_arg

public abstract Any add_named_out_arg(String name)
将具有给定名称的输出参数添加到此 Request 对象中。

参数:
name - 将添加的参数的名称
返回:
一个 Any 对象,它包含所添加输出参数的值和 typecode

set_return_type

public abstract void set_return_type(TypeCode tc)
设置该方法返回值的 typecode。

参数:
tc - 包含返回值的类型信息的 TypeCode 对象

return_value

public abstract Any return_value()
返回包含方法结果值的 Any 对象。

返回:
一个 Any 对象,它包含返回值的值和 typecode

invoke

public abstract void invoke()
使用 Request 对象中的信息进行同步调用。异常信息放置在 Request 对象的环境对象中。


send_oneway

public abstract void send_oneway()
在请求上执行单向调用。换句话说,不期望(或等待)应答。注意,该操作即使没有在 IDL 声明中声明也可以使用。不返回任何响应或异常信息。


send_deferred

public abstract void send_deferred()
对请求进行异步调用。换句话说,在向用户返回前不等待响应。用户稍后可以使用 poll_responseget_response 方法获取该调用的结果和异常信息。


poll_response

public abstract boolean poll_response()
允许用户确定是否已接收到之前使用 send_deferred 方法所触发调用的响应。

返回:
如果已经接收到方法响应,则返回 true;否则返回 false

get_response

public abstract void get_response()
                           throws WrongTransaction
允许用户访问之前使用 send_deferred 方法所触发调用的响应。

抛出:
WrongTransaction - 如果从不同于最初发送请求的事务处理域中调用 get_response 方法。有关详细信息,请参阅 OMG 事务服务 (Transaction Service) 规范。