接口 | 描述 |
---|---|
DynAny |
任何值都可以动态解释(遍历)并通过DynAny对象构造。
|
DynAnyFactory |
可以通过调用DynAnyFactory对象上的操作来创建DynAny对象。
|
DynAnyFactoryOperations |
可以通过调用DynAnyFactory对象上的操作来创建DynAny对象。
|
DynAnyOperations |
任何值都可以动态解释(遍历)并通过DynAny对象构造。
|
DynArray |
DynArray对象支持IDL数组的操作。
|
DynArrayOperations |
DynArray对象支持IDL数组的操作。
|
DynEnum |
DynEnum对象支持对IDL枚举值的操作。
|
DynEnumOperations |
DynEnum对象支持对IDL枚举值的操作。
|
DynFixed |
DynFixed对象支持IDL固定值的操作。
|
DynFixedOperations |
DynFixed对象支持IDL固定值的操作。
|
DynSequence |
DynSequence对象支持IDL序列的操作。
|
DynSequenceOperations |
DynSequence对象支持IDL序列的操作。
|
DynStruct |
DynStruct对象支持IDL结构和异常值的操作。
|
DynStructOperations |
DynStruct对象支持IDL结构和异常值的操作。
|
DynUnion |
DynUnion对象支持IDL联盟的操纵。
|
DynUnionOperations |
DynUnion对象支持IDL联盟的操纵。
|
DynValue |
DynValue对象支持IDL非盒装值类型的操作。
|
DynValueBox |
DynValueBox对象支持IDL框值类型的操作。
|
DynValueBoxOperations |
DynValueBox对象支持IDL框值类型的操作。
|
DynValueCommon |
DynValueCommon提供由DynValue和DynValueBox接口支持的操作。
|
DynValueCommonOperations |
DynValueCommon提供由DynValue和DynValueBox接口支持的操作。
|
DynValueOperations |
DynValue对象支持IDL非盒装值类型的操作。
|
类 | 描述 |
---|---|
_DynAnyFactoryStub |
可以通过调用DynAnyFactory对象上的操作来创建DynAny对象。
|
_DynAnyStub |
任何值都可以动态解释(遍历)并通过DynAny对象构造。
|
_DynArrayStub |
DynArray对象支持IDL数组的操作。
|
_DynEnumStub |
DynEnum对象支持对IDL枚举值的操作。
|
_DynFixedStub |
DynFixed对象支持IDL固定值的操作。
|
_DynSequenceStub |
DynSequence对象支持IDL序列的操作。
|
_DynStructStub |
DynStruct对象支持IDL结构和异常值的操作。
|
_DynUnionStub |
DynUnion对象支持IDL联盟的操纵。
|
_DynValueStub |
DynValue对象支持IDL非盒装值类型的操作。
|
AnySeqHelper |
org / omg / DynamicAny / AnySeqHelper.java。
|
DynAnyFactoryHelper |
可以通过调用DynAnyFactory对象上的操作来创建DynAny对象。
|
DynAnyHelper |
任何值都可以动态解释(遍历)并通过DynAny对象构造。
|
DynAnySeqHelper |
org / omg / DynamicAny / DynAnySeqHelper.java。
|
DynArrayHelper |
DynArray对象支持IDL数组的操作。
|
DynEnumHelper |
DynEnum对象支持对IDL枚举值的操作。
|
DynFixedHelper |
DynFixed对象支持IDL固定值的操作。
|
DynSequenceHelper |
DynSequence对象支持IDL序列的操作。
|
DynStructHelper |
DynStruct对象支持IDL结构和异常值的操作。
|
DynUnionHelper |
DynUnion对象支持IDL联盟的操纵。
|
DynValueHelper |
DynValue对象支持IDL非盒装值类型的操作。
|
FieldNameHelper |
org / omg / DynamicAny / FieldNameHelper.java。
|
NameDynAnyPair |
org / omg / DynamicAny / NameDynAnyPair.java。
|
NameDynAnyPairHelper |
org / omg / DynamicAny / NameDynAnyPairHelper.java。
|
NameDynAnyPairSeqHelper |
org / omg / DynamicAny / NameDynAnyPairSeqHelper.java。
|
NameValuePair |
org / omg / DynamicAny / NameValuePair.java。
|
NameValuePairHelper |
org / omg / DynamicAny / NameValuePairHelper.java。
|
NameValuePairSeqHelper |
org / omg / DynamicAny / NameValuePairSeqHelper.java。
|
提供类和,使与相关联的数据值的遍历接口any
的数据值的基本成分在运行时,和提取。
一个any
可以传递给不具有对的类型的任何静态信息的节目any
(用于由IDL编译器类型生成的代码没有被编译与对象实现)。 其结果是,在接收到该对象any
没有使用它的便携式方法。
DynAny
小号使与相关联的数据值的遍历any
的数据值的基本成分在运行时,和提取。 这对于编写强大的通用服务器(桥接器,支持过滤的事件通道)尤其有用。 类似地,该设施能够在运行时构建一个any
,而不具有其类型的静态知识。 这对于编写通用客户端(网桥,浏览器,调试器,用户界面工具)尤其有用。
Any
值可以通过DynAny对象进行动态解释(遍历)并构建。 A DynAny对象与对应于插入到Any中的值的副本的数据值相关联 。 A DynAny对象可以被视为组件DynAny的有序集合。 对于表示基本类型的DynAny,例如long
,或者是没有组件的类型,例如空的异常,组件的有序集合是空的。
每个DynAny对象维护一个当前位置的概念引入其收集组件DynAny个 S的。 当前位置由从0到n-1运行的索引值来标识,其中n是组件的数量。 特殊索引值-1表示当前位置。 对于不能具有当前位置的值(如空异常),索引值固定为-1。 如果DynAny
与具有分量的值进行初始化,则索引被初始化为0创建一个未初始化的后DynAny
(即, DynAny
不具有任何值,但一个TypeCode
允许成分),当前位置取决于类型的价值由DynAny
。 (当前位置设置为0或-1,具体取决于新的DynAny
是否DynAny
获取默认值。)
迭代操作rewind
, seek
和next
可用于改变当前位置和current_component
操作在当前位置返回组件。 component_count
操作返回一个DynAny
。 总而言之,这些操作可以对DynAny的组件进行DynAny
,例如(递归)检查其内容。
构造的DynAny
对象是与构造类型相关DynAny
对象。 有一个不同的接口,从DynAny
继承,与IDL(固定,枚举,结构,序列,联合,数组,异常和值类型)中的每种构造类型相关联。 构建的DynAny
对象导出操作,可以创建新的DynAny
对象,每个对象与构造的数据值的组件相关联。 作为一个例子,一个DynStruct
与相关联struct
值。 这意味着DynStruct
可能被视为拥有一个有序的组件集合,每个结构成员一个。 DynStruct
对象导出操作,可以创建新的DynAny
对象,每个对象与struct的成员相关struct
。
如果DynAny
对象已经从另一(构造)中得到DynAny
对象,如DynAny
表示是从创建的结构构件DynStruct
,所述构件DynAny
被逻辑地包含在DynStruct
。 调用insert
或get
操作将保持当前位置不变。 销毁顶级DynAny
对象(未作为另一个DynAny
组件DynAny
对象)也会销毁DynAny
获取的任何组件DynAny
。 销毁非顶级DynAny
对象什么也不做。 对被毁坏的顶级DynAny
或其任何后代进行调用操作会引发OBJECT_NOT_EXIST。 如果程序员想要销毁一个DynAny
对象,但仍然想要操作与之相关联的数据值的某个组件,那么他或她应该首先为该DynAny
创建一个DynAny
,然后创建一个创建的DynAny
对象的副本。
已经定义了DynAny
对象的行为,以便在分配的存储器空间和访问速度方面实现有效的实现。 DynAny
对象旨在用于遍历从any
s提取的值或在运行时any
s的值。 不建议将其用于其他目的。
Insert
和get
操作是处理基本的DynAny
对象所必需的,但也有助于处理构造的DynAny
对象。 插入一个基本数据类型值成构造DynAny
对象意味着初始化与所述相关联的构造的数据值的电流分量DynAny
对象。 例如,调用insert_boolean
上的DynStruct
意味着插入boolean
在相关联的当前位置的数据值struct
数据值。 如果TypeCode
TypeCode
DynAny中包含的DynAny
或者如果DynAny
具有组件,则类型与插入或提取值是一致的, TypeCode
当前位置的TypeCode
的DynAny
。
基本操作包括:
DynAny
和DynAnyFactory
对象旨在在其创建和使用它们的进程的本地。 这意味着对DynAny
和DynAnyFactory
对象的引用无法导出到其他进程,或者外部ORB.object_to_string()
。 如果尝试这样做,违规行为会引发MARSHAL系统异常。 由于它们的接口在IDL中DynAny
, DynAny
对象导出操作在标准org.omg.CORBA.Object
界面中定义。 然而,任何试图调用操作通过出口Object
接口可以提高标准NO_IMPLEMENT异常。 尝试在DII中使用DynAny
对象可能会引发NO_IMPLEMENT异常。
有关Java [tm] Platform,Standard Edition 6 ORB遵循的官方规范支持部分的精确列表,请参阅Official Specifications for CORBA support in Java[tm] SE 6 。