14.2. Dynamic Language Binding
动态语言绑定API允许在运行时定义数据类型,而不是像普通语言绑定那样预先定义这些类型。此API包括类型定义以及使用定义类型所需的getter和setter。类型定义还可以通过XML配置文件进行,如动态类型配置部分所述。
本节首先介绍动态语言绑定API,然后介绍支持的类型及其具体示例,以定义和使用这些类型。
14.2.1. Dynamic Language Binding Interfaces
本节简要介绍动态语言绑定API。如需更多信息,请参阅DDS-XTypes规范和API参考。
14.2.1.1. TypeDescriptor
TypeDescriptor负责描述一种类型的状态。该接口的对象具有值语义,允许对TypeDescriptor数据进行深度复制和比较。
14.2.1.2. AnnotationDescriptor
AnnotationDescriptor负责描述应用于特定元素的用户自定义注解。该接口的对象具有值语义,允许对AnnotationDescriptor数据进行深度复制和比较。
14.2.1.3. MemberDescriptor
MemberDescriptor负责描述特定成员的状态。该接口的对象具有值语义,允许对MemberDescriptor数据进行深度复制和比较。
14.2.1.4. VerbatimTextDescriptor
VerbatimTextDescriptor负责描述@verbatim内置注解的应用。该接口的对象具有值语义,允许对VerbatimTextDescriptor数据进行深度复制和比较。
14.2.1.5. DynamicTypeBuilderFactory
DynamicTypeBuilderFactory作为单例存在,其实例负责创建和删除DynamicTypeBuilder对象。此类提供了通用的DynamicTypeBuilderFactory::create_type API,以及用于定义其他基本类型(如字符串、序列等)的特定API。更多信息请参见支持的类型部分。
14.2.1.6. DynamicType
DynamicType对象表示特定的类型定义。一旦构建了DynamicType,就无法修改。该接口的对象具有引用语义,因此API接收一个nil引用,然后返回指向正确DynamicType地址的指针。
14.2.1.7. DynamicTypeMember
DynamicTypeMember表示DynamicType的数据成员。该接口的对象具有引用语义,因此API接收一个nil引用,然后返回指向正确DynamicTypeMember地址的指针。
14.2.1.8.DynamicTypeBuilder
DynamicTypeBuilder接口允许实例化具体的DynamicType对象,并作为配置DynamicType之前过渡状态。在定义之后,DynamicTypeBuilderFactory利用构建器中的信息来创建DynamicType。DynamicTypeBuilder::build用于创建完全构造好的DynamicType。在创建后,构建器仍然可重用,确保对构建器所做更改不会影响先前创建的类型。
14.2.1.9.DynamicDataFactory
DynamicDataFactory作为单例存在,其实例负责从给定动态类型实例中创建和删除动态数据对象。
14 .2 .1 .10 . DynamicData
DynamicData表示某种动态类型的数据实例,提供访问和修改数据值功能。每个DynamicData对象对应于其动态型所代表的一种特征,通过反射式getter与setter提供操作个别数据样本的方法。
内容由零声教学AI助手提供,问题来源于学员提问