ZBLOG

14.2. Dynamic Language Binding The Dynamic Language Binding API allows to define data types at runtime instead of having the types predefined as it is required by the Plain Language Binding. This API includes both the type definition and, the get...

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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=7435

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?